既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家

2024-12-17 08:19:05
推荐回答(3个)
回答1:

在计算机系统中,数值,一律用补码表示和存放。

补码,就是一个代替负数运算的正数。

借助于补码,就是用正数代替负数来进行运算。

借助于补码(正数),减法,也就可用加法来代替。

正数,怎么就能代替负数呢?

且看 2 位 10 进制:

  24 - 1 = 23

  24 + 99 = (一百) 23

只取两位结果,舍弃进位,这两种算法,功能就是相同的。

此时,+99 就能当做-1 使用。

同理,+98 就能当做-2。

。。。

这些正数,就是负数的补数。

补数的定义式:补数 = 负数 + 10^2。

因此,借助于补数,就能用加法来实现减法运算。

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

计算机用二进制,补数,就改称:补码。

8 位 2 进制,范围是:0000 0000~1111 1111。

用十进制来说明,就是:0 ~ 255。

补码的定义式,就是: 补码 = 负数 + 2^8。

-1 的补码:-1 + 2^8 = 255 ( = 1111 1111)。

-2 的补码:-2 + 256 = 254 ( = 1111 1110)。

。。。

-128 的补码:-128 + 256 = 128 ( = 1000 0000)。

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

借助于补码,可用加法来实现减法。

这样就统一了加减法。由此就可以简化计算机的硬件。

原码、反码,都没有这种功能。

因此,原码和反码,都没有任何存在的意义。

所以,在计算机中,并没有原码和反码。数值,一律采用补码表示和存储。

回答2:

正负数据,只是使用补码来存放。
计算机中,并没有原码和反码。

正负数,和补码之间,有个关系式,可以直接互相转换,并不需要绕道原码反码。
原码和反码,可以说,一无是处。

回答3:

原码容易理解。反码是原码与补码间的桥梁。