32位int的取值范围正确答案是 min:-2147483648 max:2147483647
32位中第一位用来存正负号,只剩下31为,31位二进制的最大值是2147483647,这个我正常理解
可为什么负数能取到-2147483648 而不是-2147483647 那多出的1是哪儿来得?
我知道与0有关,可我还是没办法正常理解,请高手指教-2147483648在32位中到底是如何存储的.
32位中第一位用来存正负号,只剩下31为,31位二进制的最大值是2147483647,这个我正常理解
可为什么负数能取到-2147483648 而不是-2147483647 那多出的1是哪儿来得?
我知道与0有关,可我还是没办法正常理解,请高手指教-2147483648在32位中到底是如何存储的.
-2147483648 = 10000000 00000000 00000000 00000000
这都是不对的
实际上:
-2147483647 = -1111111 11111111 11111111 11111111我不懂-2147483648如何存储的
http://topic.csdn.net/u/20101027/22/8d85a939-9740-4dd0-a8bd-45b8c5849735.html