int的取值真正是怎么样的,刚好朋友问到了而且问的比较深,下面是我的一些解释:
用计算器可以很明显看到int的取值范围
int四个字节,八个半字节,32个bit 2147483647就是Int的最大值
32个bit位,四位半个字节,八位一个字节;这是int的最大取值。
如果给最大值 2147483647 + 1会是什么结果
二进制加法,每个bit位置0往前进一位,最后结果为-2147483648:
为什么是-2147483648呢,其实是-0,哈哈哈没想到吧,计算机中-0用来表示-2147483648也就是Int的最小值。
无符号Int的最大值:
下面是我写的一个测试的代码:
#include<stdio.h>
int main() {
int a = 2147483647;
int b = -2147483647;
printf("\na = %d\n", a);
printf("a - 1 = %d\n", a-1);
printf("a + 1 = %d\n", a+1);
printf("-a = %d\n", -a);
printf("b - 1 = %d\n", b - 1);
printf("b - 2 = %d\n", b - 2);
return 0;
}