原码,反码,补码的引入原因:
是为了解决做减法的问题,
先是提出原码,但是原码问题就在于一个数加上他的相反数不等于零
后提出反码,但是反码使两个负数相加的出错了
最后提出补码
原码:
是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
原码最大的问题:
0001+1001=1010 (1+(-1)=-2)
我们知道,原码最大的问题就在于一个数加上他的相反数不等于零。于是反码的设计思想就是冲着解决这一点,既然一个负数是一个正数的相反数,那我们干脆用一个正数按位取反来表示负数试试。
反码:
正数的反码还是等于原码
负数的反码就是他的原码除符号位外,按位取反。
反码与原码比较,最大的优点:
解决了减法的问题
反码出现了问题:
1110(-1)+1101(-2)=1011(-4)
相反数问题是解决了,但是却让两个负数相加的出错了
补码:
0110(6)-0010(2)=0110(6)+1110(14)=10100(20=16+4)
正数的补码等于他的原码
负数的补码等于反码+1。
最后
如果你想知道更多
点这里