// 解答2.1 size2.c // 最大値と最小値を求める(高速) #include #include #include void long_int_minmax() { int32_t x,old_x; //最小値 x = old_x = -1; while (old_x > (x<<=1) ) { old_x = x; } printf("min=%" PRId32 ", ", old_x); //最大値 x = old_x = 1; while (old_x < (x<<=1) ) { old_x = x; } printf("max=%" PRId32 "\n", x-1); } void long_int_minmax_fast() { int b = sizeof(long int); int d = 1<<(b*8-1); printf("min=%d, ", -d); printf("max=%d\n", d-1); } void print_size() { printf("sizeof(char)=%d\n", sizeof(char)); printf("sizeof(short int)=%d\n", sizeof(short int)); printf("sizeof(int)=%d\n", sizeof(int)); printf("sizeof(long int)=%d\n", sizeof(long int)); printf("sizeof(long long int)=%d\n", sizeof(long long int)); printf("sizeof(pointer)=%d\n", sizeof(void*)); } int main() { long_int_minmax(); long_int_minmax_fast(); print_size(); }