有符号数据经常是把二进制最高位当成符号位,当你的数据占用最高位表示时,计算机如果当成有符号数来使用就会出现理解错误的情况,把最高位的1当成整个数据是负数来看待。
八位的补码是:0000 0000~1111 1111。
写成十进制就是:0 ~ 255。
其中的 0 ~ 127,是正数的补码。
而 128~255,则是-128 ~-1 的补码。
所能表示的范围是:-128 ~+127。
-----
例如:
按照补码运算:99 + 87 = 186。
超出了所能表示的范围,当然是溢出了。
即:正99+正87,却得到了-70 的补码。