# 什么是补码
补码是计算机中用来表示有符号整数的一种方式,同时也是进行加减法运算时的基础
补码表示法的特点是:
- 正数的补码等于其原码(即普通二进制表示)
- 负数的补码是其对应的正数的二进制表示取反后加1
以5为例
# 正数5
正数 5 的二进制原码是:00000101
所以它的补码也是:00000101
# 负数5
- 先写出
正数5的二进制:00000101 - 取反(得到反码):
11111010 - 加 1:
11111011 - 所以
-5的补码是:11111011
# 为什么要有补码
# 统一加减法:使用补码,可以将减法转换为加法运算。
例如:7 - 5 可以转换为 7 + (-5),在补码下可以直接用加法器实现。
只有一个 0:不像原码和反码那样有 +0 和 -0 两种表示,补码中 0 只有一种表示(全 0)
在反码系统中,+0 和 -0 有两种不同的表示:
+0的二进制表示为全 0(例如,在8位系统中,+0是00000000)-0则是对+0的每一位取反得到,在8位系统中,-0表示为11111111
处理起来需要额外处理这2种情况,效率低下
便于硬件实现:现代计算机普遍采用补码来表示整数和进行运算