科普原码,反码,补码

tetsai
原创声明
本文由tetsai原创,转载请注明来源
原码
最高位表示符号,剩下的表示数
比如-5,5的二进制是0101,因为是负数,所以有符号,有符合就是1,所以就变成了
10101=-5 (原码)
反码
如果是正数,反码=原码,如果是负数,则最高位不动,剩下的0变1,1变0,也就是说
原码10101的反码是11010
原码00101的反码是00101
补码
反码+1就可以得到补码了
反码11010的补码是11011
反码00101的补码是00110
有啥卵用?
补码保证了负数与正数相加的结果正确,比如
11011(-5)+00110(5)=10001
10001肯定也是补码,它会是多少?
先减一得反码10000,可以看见数字是0
引用:
所以反码表示法其实已经解决了减法的问题,他不仅不会像原码那样出现两个相反数相加不为零的情况,而且对于任意的一个正数加负数,如:
0001(1)+1101(-2)=1110(-1) 计算结果是正确的。
具体详情可以看,我就不转了:https://www.imooc.com/article/16813