int取值范围:-2^31~2^31-1
计算机中32位int类型变量的范围。 其中int类型是有符号整数。
正数在计算机中为原代码,最高位为符号位:
1的源代码是00000000000000000000001
2147483647的源代码是0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
所以最大的正整数是2147483647
负数在计算机中表示为补数,最高有效位为符号位。
-1:
源代码为10000000000000000000000000001,
反码为1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
补数为11111111111111111111111111111111111111111111111111
-2147483647 :
源代码为111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
代码为100000000000000000000000000000,
补数是10000000000000000000000000001
所以最小的负数是-2147483647吗? 不,不是。
在二进制中,0有两种表示方法。
的源代码为000000000000000000000000,
-0的源代码为10000000000000000000,
因为只需要一个0,所以把-0拿来作为最小的数-2147483648。
-2147483648的补数显示为10000000000000000,32位没有源代码。
请注意,此补数不是真正的补数。 真正的补数是1,000,0000,0000,0000,0000,0000,0000,0000,溢出。
因此,有符号32位int型整数是-2147483648~2147483647