2的补码优于1的补码?

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

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

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

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

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

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

参考文献:

主要优点是:

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

     +0 --> 00000000 

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

      +1(00000001) + -1(11111110) ----------------- = (11111111) 

但是正确答案是0 。 为了得到0我们必须在结果( 11111111 + 1 = 00000000 )上增加一个进位位1

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

  +1(00000001) + -1(11111111) ----------------- = 1 00000000 

负整数: 2的补码对于负整数是有意义的。 1的补码只是一个计算技术,可能有助于评估2的补码。 二进制补码的实际(被击败的)对手是负整数的符号幅度表示。

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

符号量级:相反,符号量级符号只是人类用来表示负整数的方式。 比特数的提升和加减运算与这个符号有点混乱。

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

二的补充#1的优点

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

**

二的补充#2的优点

**对Two的补码表示法中的两个有符号整数执行算术运算(例如加法,减法,乘法,除法)时,可以使用完全相同的方法,就像有两个无符号整数一样(即非负整数没有符号位)…除了,你扔掉高进位(或减法的高借位)

二的补充#3的优点

Two's Complement表示的属性是这样的

令人难以置信的方便,几乎每个将军

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

二进制补码不是用来表示一个负数,而是一个倒数。

意思是你可以做A + B'(其中B'是B的二进制补码)给A – B,意味着你可以用加法器做所有事情,而不需要一个减法器