计算机中负数的表示很麻烦,比如-1
step1 :确认原码
-1的原码是1000 0001,其中最高位1是符号位,1表示负数,0表示正数;
step2:取反码
然后取反码,正数的反码就是自身,但是负数的反码就需要将对应的1变为0,0变为1,但是符号位不变。
1000 0001 -->1111 1110
step3:计算补码
补码就是在反码的基础上+1, -1的反码是1111 1110,那么对应补码就是1111 1111
仔细观察就可以发现有如下规律:
-1补码是1111 1111(第255个)
-2补码是1111 1110(第254个)
-3补码是1101(第253个)
当初为了用255个数表示正数、负数、和0,
那么前1~127表示正数,范围是(1~127)
第128~255个数表示负数,范围是(-127 ~-1)
反码+补码的 本质就是表示 第n个数对应到第 255-n+1个数的变换算法。