原码、反码和补码都是带符号数在机器中的表示方法。
带符号数的表示:
原码
用最高位表示符号位,数值部分用二进制绝对值表示,这就是原码的表示方法。
例如:
+11的原码:00001011
-11的原码是:10001011
1
2
3
反码
原码变反码规则:正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变为0) 。
+11的原码:00001011
-11的原码是:10001011
例如:+11的反码:00001011 -11的反码是:11110100
1
2
3
补码
补码规则为:正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变为0),最后在末尾加1。
+11的原码:00001011
-11的原码是:10001011
例如:+11的补码:00001011 -11的补码是:11110101
1
2
3
将补码转换为真值:[[X]补]补=[X]原