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。)

 

posted @ 2018-07-25 13:23  hui666  阅读(1157)  评论(0编辑  收藏  举报