Visual C++中int表示的范围
在Visual C++中的int整型一般由四个字节表示
在计算机中采用补码形式存储int(对于正数其补码与原码相等),
补码的数字从0000 0000 0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111 1111 1111
通过补码和原码的转换规则,1111 1111 1111 1111 1111 1111 1111 1111表示的值为-1;
1111 1111 1111 1111 1111 1111 1111 1110表示的值为-2;
1111 1111 1111 1111 1111 1111 1111 1101表示的值为-3;
:
:
1000 0000 0000 0000 0000 0000 0000 0001表示的值为-2147483647;
将1000 0000 0000 0000 0000 0000 0000 0000硬性规定为-2147483648;
简化性的理解:
对于一个8字节的整数(int)来说,范围是2的8次方,表示-128~127。如下面的表格所示,如果用原码和反码,
+0和-0是同一个数却有两个不同的表示,这样不仅会使计算机多一层处理,还会浪费一个表示范围;而补码就能很好的解决这个问题。
(-128只有补码,而没有原码和反码,因为数值位只能表示0~127。)