补码 ==> Complement
“反码加一”只是补码所具有的一个性质,不能被定义成补码。
负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。
这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的
这篇文章将会介绍原码、反码、补码的定义,以及补码的计算方法。
原码
最高位为符号位,0表示正数,1表示负数。
例如:
X = 0b11 (3),四比特表示原码 = 0011(3) ;X = - 0b11(-3) ,四比特表示原码 = 1011(11) ;
反码
最高位为符号位,0表示正数,1表示负数。
正数的反码等于本身,负数的反码除符号位外,各位取反:
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ;X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12) ;
补码
最高位为符号位,0表示正数,1表示负数。
正数的补码等于本身,负数的补码等于反码+1:
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ,补码为 = 0011(3);X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13) ;
示例
1补 (0001) + -1补(1111) = (1 0000)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments