-128D=10000000B是规定而来的,而11111111可以计算是等于-1,第一位是符号位,是1,即为负数,后七位取反再加1,结果-1。
最大值首先符号位当然是0,即正数,所以最大值是01111111,即127
八位码长,0 的补码就是:0000 0000。
将其减一,取八位,得:1111 1111=255 (十进制)。
因此,-1 的补码就是:255 = 1111 1111 (二进制)。
同理,-2 的补码就是:254 = 1111 1110 (二进制)。
继续,-3 的补码就是:253 = 1111 1101 (二进制)。
公式:-X 的补码 = 256 - X 。 再变换为二进制。
所以,-128 的补码是:256-128 = 128 = 1000 0000。
在计算机教材中,补码,有个定义式:
● X < 0 时,[ X ]补码 = 2^n + X。
当 n = 8,则 [-128 ]补码,就如下计算:
● 256-128 = 128 = 1000 0000 (二进制补码)。
-128 的补码,就是这么按照定义式算出来的。