2的补码优于1的补码?

时间:2012-06-15 15:55:22

标签: binary negative-number

二进制数系统中负数表示中2的补码优于1的补码有什么优势?它如何影响二进制系统中某个位数表示中存储的值的范围?

6 个答案:

答案 0 :(得分:51)

两个补码相对于一个补码的主要优点是二进制补码只有一个零值。一个补码有一个“正”零和一个“负”零。

接下来,要使用一个补码添加数字,您必须首先进行二进制加法,然后添加一个结束进位值。

二进制补码只有一个零值,不需要进位值。

您还询问了存储的值范围是如何受到影响的。考虑一个8位整数值,以下是您的最小值和最大值:

Notation     Min   Max
==========  ====  ====
Unsigned:      0   255
One's Comp: -127  +127
Two's Comp: -128  +127

参考文献:

答案 1 :(得分:14)

主要优点是:

  1. 在1中有一个-011111111)和一个+000000000),即同一个{{的两个值1}}。另一方面,在2的补码中,00)只有一个值。这是因为

    00000000

    +0 --> 00000000
    
  2. 在使用1&1进行加法或减法等算术运算时,我们必须在结果中添加一个额外的进位,即 -0 --> 00000000 --> 11111111 + 1 --> 00000000 ,以获得正确的答案,例如:

    1
  3. 但正确的答案是 +1(00000001) + -1(11111110) ----------------- = (11111111) 。为了获得0,我们必须添加一个进位   位0到结果(1)。

    在2补码中,结果不需要修改:

    11111111 + 1 = 00000000

答案 2 :(得分:4)

负整数: 2的补码对于用于负整数是有意义的。 1的补码只是一种计算技术,可能有助于评估2的补码。 2的补码的真实(失败)对手是负整数的符号幅度表示。

无溢出: 1' s补码对负整数没有特殊用法。 2的补码是有意义的,因为它可以用于自然加法和减法运算,而无需改变位。假设没有发生溢出,结果的符号位就是正确的值。这种表示法中的位数提升是直接的,例如,为了将8位有符号整数提升为16,我们可以简单地在其高字节中重复整数值的符号位。

符号幅度:相反,符号幅度符号只是人类用来表示负整数的方式。这个符号的位数提升和加法减法运算有点乱。

答案 3 :(得分:3)

Two's Complement#1的优点

在Two's Complement表示中,值为零 通过将所有位设置为零来唯一表示:

**

Two's Complement#2的优点

** 执行算术运算时(例如, 二,加,减,乘,除) 你可以在Two's Complement表示中签名整数 可以使用 完全相同的方法 好像你有两个 无符号整数(即没有符号的非负整数 位)...... 除了 ,你扔掉高携带(或高 借 减法)

两个补语的好处#3

Two's Complement表示的这个属性是如此

令人难以置信的方便,几乎每一般

目的 今天可用的计算机使用Two's Complement。 为什么?因为,在Two's Complement中,我们不需要 特殊算法 (因此额外的电路) 涉及负值的算术运算。

答案 4 :(得分:2)

二进制补码优于有符号位表示的另一个主要优点是2的补码表示很容易在硬件中操作

答案 5 :(得分:1)

2s补码不是用于表示负数而是反向。

意味着你可以做A + B'(其中B'是B的2s补码)给A - B,意味着你可以用加法器做所有事情而不需要减号

相关问题