1的原码 0000 0001
-1的原码 1000 0001(最开始的1为符号位)
两者相加 1000 0010 不等于 0
所以才有补码,有了补码就可以直接进行运算
反码定义
1.正数的反码与原码相同
2.负数的反码,符号位为“1”保持不变,数值部分按位取反。
EX:
1的反码 0000 0001
-1的反码 1111 1110
补码定义
1.正数的补码和原码相同
2.负数的补码为反码+1
EX:
1的补码 0000 0001
-1的补码 1111 1111
综上:有a>0,a的反码计作Fa,-a的反码计作-Fa;a的补码计作Ba,-a的补码计作-Ba
则有 Fa+(-Fa) = 0xFF (1111 1111)
所以如果负数的补码为反码+1
则有 Ba+(-Ba) = Fa+(-Fa + 1) = 0xFF +1 = 0x00
所以使用补码表示的数值可以直接计算