使用补码可以将符号位和数值域同一处理,同时加法和减法也可以同一处理(CPU只有加法器)。此外补码原码相互转换过程相同。
例如:
1-1 --> 1+(-1):
如果是用原码直接相加:
0000 0000 0000 0000 0000 0000 0000 0001
+ 1000 0000 0000 0000 0000 0000 0000 0001
加出来的结果并不是0.
如果用补码相加:
0000 0000 0000 0000 0000 0000 0000 0001
+1111 1111 1111 1111 1111 1111 1111 1111
=1 000 0000 0000 0000 0000 0000 0000 0000
1是在33位,所以结果是0。