在计算机中,所有的数值都以补码形式存储。
正数的补码等于它本身,负数的补码=其反码+1.
其原因是:
1、采用补码统一了0的编码。
+0 | 0000 0000 | 原码 |
0000 0000 | 反码 | |
0000 0000 | 补码 | |
-0 | 1000 0000 | 原码 |
1111 1111 | 反码 | |
0000 0000 | 补码 |
使用补码,+0和=-0的表示结果是一样的。
2、将符号位和其他位统一处理。
3、将减法运算,变为加法运算。
4、两个用补码表示的数相加时,如果符号位有进位,则进位被舍弃。
当进行9-6运算时,可当做9+(-6)
若用原码进行计算:
0000 1001
+1000 0110
=1000 1111
其结果是15,显然,这是不对的。
若用补码进行计算:
0000 1001
+1111 1010
=0000 0011(进位被舍弃)
结果正确。