一个byte是1个字节,能表示的数的范围是-128~127.请问,这是为什么呢?

0111 1111 表示127这个我理解,为什么1111 1111就是-128呢? 除去符号位,他也是127啊!!

你这个应该用补码形式吧
在计算机中,是用补码形势表示二进制数。
正数的补码是其本身;
负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1。
所以最小数的补码形式为 1 0 0 0 0 0 0 0 ;
它的数值绝对值应该是各位取反再加1,即为
0 1 1 1 1 1 1 1 + 1 = 1 0 0 0 0 0 0 0 = 128
又因为是负数,所以是 - 128
而最大数是正数,原码和补码一样 所以是 +127
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-09
00000000 这是0
0XXXXXXX 这是正XXXXXXX不能全是0,如果全是0就是0了
1XXXXXXX 这是负XXXXXXX可以全是0,这就是-128了.