为什么要有原码、反码和补码?

2024-11-25 18:59:39
推荐回答(5个)
回答1:

原码、反码、补码,是机器数。
计算机内部的硬件电路较易实现用1(高电平)、0(低电平)表示数据的正、负,通常这个符号放在二进制数的最高位,称符号位。符号位与数值位共同参预运算。
机器数的记忆及运算,利于计算机硬件逻辑电路的设计与制造。

回答2:

想想你小时候,刚学会数数。

一般,数到一百,大人就不让你往下数了,而是从头开始数。

这就是说,你只会 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。

以上就是,正负数值,存在计算机中内容,称为:补码。

---------------------

原码和反码,都没有“加法代替减法”的计算功能。

所以,在计算机中,并不使用原码和反码。

在计算机中,它们,都是不存在的。

它们,只是某些专家编造出来,蒙混学生而已。

回答3:

反码是个过渡原码和补码的东西,其实就是按位的NOT
补码是用来做减法运算的
我好像听说做加法的电路比做减法的电路速度快很多(我也记不清了,好像是这样),所以CPU是用加上补码来做减法的

回答4:

原码和反码,只是在纸面上写写而已了,并没有用处。
补码,才是在计算机中使用的代码。

回答5:

因为用原码无法表示负数啊