为什么要有原码、反码和补码?
你的措词太专业了,我看不懂啊,能不能浅显一点,只要说明是做什么用的就可以了。干嘛要反码补码这么麻烦?直接原码发出去不就好了吗? 展开
想想你小时候,刚学会数数。
一般,数到一百,大人就不让你往下数了,而是从头开始数。
这就是说,你只会 0~99,循环周期是一百。
你会加法,但是,还不会做减法。
在这时,你想要-1,就可以用 +99 代替。
25 - 1 = 24
25 + 99 = (一百) 24
忽略你所不会的一百,结果就是相同的。
以上这些,就是补码的理论基础。
99,就称为-1 的补数。
补数,就是“代替负数的正数”。
借助于补数,就可以用加法,代替减法运算。
在计算机中,使用了补码,就可以使用加法器,作减法运算。
简化硬件,就是使用补码的目的。
计算机所能计算的数字的位数,是固定的。
八位机就是计算 8 位数。
八位二进制,共有:0000 0000~1111 1111(十进制255)。
循环周期是:2^8 = 256。那么,
-1 的补码就是:256-1 = 255 = 1111 1111(二进制)。
-2 的补码:254 = 1111 1110。
。。。
-128 的补码是:128 = 1000 0000。
以上就是,正负数值,存在计算机中内容,称为:补码。
---------------------
原码和反码,都没有“加法代替减法”的计算功能。
所以,在计算机中,并不使用原码和反码。
在计算机中,它们,都是不存在的。
它们,只是某些专家编造出来,蒙混学生而已。
补码是用来做减法运算的
我好像听说做加法的电路比做减法的电路速度快很多(我也记不清了,好像是这样),所以CPU是用加上补码来做减法的
补码,才是在计算机中使用的代码。