何为原码,何为反码,何为补码。,何为补码。。

如题所述

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

补码,其实,就是一个“代替负数”的正数。

使用了补码(正数)之后,在计算机中,就没有负数了。

从而,计算机中的减法运算,也都不存在了。

所以,借助于补码,计算机只需要配置一个加法器,就能走遍天下。

使用补码的目的,就是:简化计算机的硬件。

而原码、反码,都没有这种功能,所以,计算机中,根本就不用它们。

原码和反码,在计算机中,都是不存在的。

不存在的东西,就不用琢磨了。

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

补码(一个正数),怎么就能代替负数呢?

你看时针:倒拨 3 小时,可以用正拨 9 小时代替吧?

你看三角函数:-π/2、+3π/2,两者的函数值也是相同的吧?

10 进制数,如果限定只用 2 位 ,那么就会有:

   25 - 1 = 24

   25 + 99 = (一百) 24

如果忽略进位一百(10^2),+99 就可以代替-1。

上面所说的这些正数,就是“负数的补数”。

求补数的公式是: 补数(即正数)= 负数 + 周期。

正数,必须直接参加运算,不可再做任何变换。

就是说:正数,本身就已经是正数了,它并不存在什么补数。

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

计算机用二进制,补数,那就称为“补码”了。

8 位 2 进制的周期,是:2^8 = 256。

那么:

-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。

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

。。。

-128 的补码,就是:128 = 1000 0000。

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

至此,你就可以推出“补码的定义式”:

 当 X >= 0,  [ X ]补 =  X;     零和正数不用变换。

 当 X < 0,  [ X ]补 =  X + 2^n。 n 是补码的位数。

这就是“何为补码”的答案。

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

按照公式求补码,是极为简便的,而且还能理解补码的意义。

而且,反过来求(由补码求数值),也是很方便的。

实际上,你只要会“补码与数值”的互换,就够用了。

那么,没有必要学“原码反码取反加一符号位不变”了。

况且,原码和反码比补码,还少了一个数,取反加一,也无法使用。

当然,那些数学不好的老外,也只能使用这些“隔路”的花样。

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

算式 5 - 7 =-2,计算机用八位补码计算如下:

    5 = 0000 0101

 [-7]补码 = 1111 1001

--相加-----------

  得: (1) 1111 1110 = [-2]补码

舍弃了进位,结果,就是正确的。

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-15
原码(true
form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面原码增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
补码规定:正数的补码与原码相同。负数的补码等于其原码的符号位不变,数值部分的各位取反,然后整个数加1。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
第2个回答  2019-12-14
补码的补码就是原码!
带符号数中只有负数的原码反码和补码是不一样的,正数的这些都是一样的,涉及码制转换!
原码求补码是取反加1
补码求原码还是是取反加1(符号位除外)
第3个回答  2020-01-09