在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
补码运算: 正数补码是其原码 负数的补码为其数值位部分取反加一(符号位不变)
负数X的补码 = |X|按位求反+1
= X按拉求反(除符号位外)+1
= 模 - |X| (强调了补码运算本质上是一种模运算,这就是称其为“补码”的缘由)
注释: 负数就相当于减去一个正数 ;减去一个正数就相当于加上一个负数;加上一个负数就相当于加上这个负数的补码;负数的补码为其数值部分取反加一。(即减去一个数等于加上这个数对应负数的补码)
例如: - 6 等于 + (-6的补码)
- 6 补码:
-6的原码: 1110
对-6的原码取反(-6的反码): 1001
对-6的原码取反加一(-6的补码):1010 (即-6在计算机系统中的表示)
求补码的原码:
例如 -6的补码为1010
对1010取反: 1101
+1 : 1110 (十进制为-6)