二进制的补码形式是(二进制的补码形式是多少)

http://www.itjxue.com  2023-02-19 00:20  来源:未知  点击次数: 

二进制中的反码、补码、原码是什么?

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

也就是说,在计算机中,只有补码,并没有原码和反码。

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

所以,使用了补码之后,计算机中,就没有负数了。

而且,在计算机中,也就没有减法运算了。

因此,计算机只需有一个加法器,就可以打遍天下。

补码的功能之一,就是可以简化硬件!

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

所以,计算机,根本就不用它们!

它们是干什么的呢?

就是用来唬人的。

是为了让这些计算机老师,混碗稀粥喝。

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

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

其实,很简单。

你看钟表的时针,倒拨 3 小时、正拨 9 小时,效果相同吧?

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

再看 2 位 10 进数,0~99,计数周期是 10^2。

可以看到:

 25 - 1 = 24

 25 + 99 = (一百)? 24

你只要忽略进位(10^2),+99 和-1 就是等效的。

以上这些,有如下规律:

 正数 = 负数 + 周期。

这个正数,就是“负数的补数”,它就可以代替负数,进行运算。

在三角函数中,负角度,和正角度,是怎么变换的呢? 

也是用这样的公式: 正角度 = 负角度 + 周期(2π)。

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

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

8 位 2 进制数,它们可以构成 256 组代码。

所以,计数周期就是:2^8 = 256。

求补码的公式是: 补码 = 负数 + 周期(2^n)。

-1 的补码就是:-1 + 256 = 255

 = 1111 1111 (二进制)。

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

。。。

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

以上就是 256 组代码中的 128 个负数补码。

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

正数本身,已经就是正数,所以并不存在什么“正数的补码”。

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

举例说明,如: 5 - 7 = -2。

用八位补码计算的过程如下:

5 = 0000 0101

-7的补码= 1111 1001

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

 得:  (1)? 1111 1110 = -2 的补码

舍弃进位,只保留八位,这就用加法,实现了 5-7。

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

计算机,只用补码,因为补码运算符合数学的规律。

而原码反码,都是人为虚构出来的。

即使把它们说出天花来,它们也是不存在的。

求反加一、符号位不变。。。是怎么回事?

老外数学不好,才会想出这些个烂办法。

二进制 补码

沿着由原码到补码的路子,-128 是很难办的。

因为在八位码长下,原码和反码的范围,都只有-127~+127。

就是说:-128 并没有原码和反码。

那么“求反加一”就没有用武之地。

同样,由-128的补码求出原码,也是不可能的。

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

那么,-128 的补码,是怎么来的?

求补码,有正经的公式:

当 X = 0,[ X ]补 = X;

如 X 0,? ?[ X ]补 = X + 2^n,n 是位数。

因此:[-128]补 = -128 + 2^8

 ? = 128

 ? = 1000 0000 (二进制)

求二进制补码形式

72用二进制表示就是

0100

1000,那么-72的原码就是1100

1000,再求反码,即

1011

0111,反码加1就是补码,即

1011

1000.

同理,-76原码

1100

1100,反码

1011

0011,补码

1011

0100

在此说明一下,负数的原码就是最高位为1,正数最高位是为0。反码就是最高位不变,其他位进行求反。补码等于反码加上1。

(责任编辑:IT教学网)

更多

推荐CSS教程文章