int为4个字节:1字节=8位,所以int为32位在计算机中存储的二进制位数。
如果没有符号位的话: 就是32位:表示数的范围为2的32次方(可以举例数字就明白了).
最大的整数为:2的32次方-1。
就是这么大:
unsigned int 0~4294967295
如果有符号位的话,需要去除一个符号位,正数最大为:2的31次方-1 ,负数最小为:-2的31次方
至于为什么是-2的31次方,是因为负数计算的补吗问题:
这是由二进制补码的性质决定的。
一个二进制有符号数的补码,所能存储的数的范围是有负号的一半,无负号的一半,由于0占了一位,所以正数比负数少一个。
+0:0000 0000 | 0000 0000 | 0000 0000 | 0000 0000
-0: 1000 0000 | 0000 0000 | 0000 0000 | 0000 0000
+0和-0,都是表示0,那么我们就没有必要用两个数共同来表示0,我们用+0表示0,用-0取表示其他的数,上面我们也发现,-0其实表示的是-2³¹,所以这也是一种规定,可以让我们对资源有一个更充分的利用。
所以就是这么大:
int -2147483648~2147483647