📜  数字电子产品–基数和基数减少的补语

📅  最后修改于: 2021-06-28 16:15:43             🧑  作者: Mango

先决条件–数字补码

补码的使用主要是执行减法。如果我们想使用逻辑门来实现减法,那么我们可以轻松地执行加法,因为我们需要更多的逻辑门(因为我们需要考虑借用这种东西)。因此,如果我们以某种方式使其成为简单的表达式,即我们正在使用较便宜的电路来实现这些操作。

每个base-r系统基本上有2种补语类型:

1.基数补码((r-1)的补码)减少:

如果我们给以n为基数的n为n,则(r-1)的补数或减基数补码定义为–

(r^n - 1) - N

范例1:

让我们取r = 10,即我们需要找到一个数字的9的补数。设数字为N,则N的9的补码为

10^n -1 -N i.e. 999....99 (n digits) - N

范例2:

让我们取N = 1988。在这里,r = 10且n = 4,所以1988年的9的补数为

9999 - 1998 = 8001 

范例3:

让我们取N =01234。在这里,r = 10且n = 5,所以01234的9的补码为

99999 - 01234 = 98765
  • 对于二进制数,r = 2
  • 因此2 ^ n表示为100…00(1,后跟n 0)
  • 这意味着2 ^ n -1表示为1…11(n 1’s)
  • 对于二进制1的补码,我们看到它具有全1,即1-1 = 0和1-0 = 1
  • 这意味着,如果仅将1从0更改为0,将0从1更改为0,我们将直接获得其补码。

范例4:

让我们取N = 010010和r = 2以及n =6。因此,N的直接1的补码为

111111-010010 = 101101

2.基数补语(r的补语):

如果给我们以n为底的r中具有n个数字的N,则(r)的补码或基数补码定义为:

rn - N

这与将(r-1)的补语加1以获得r的补数相同。

范例1:

令N = 12345且n = 5且r =10。因此N的10的补码为

100000 - 12345 = 98765

令N = 010101,n = 6和r = 2

因此2的补码就是1的补码+1,即将1更改为0,将0更改为1,然后将1加到数字上。所以010101的2的补码是

101010+1 = 101011

我们也可以进行上述操作,因为可以通过保留所有最低有效0和前1不变并在所有其他较高有效数字中将1替换为0并将0替换为1来形成2的补码。

示例2: 0110111的2的补码为1001001使用r和r-1的补数执行减法:用数字硬件实现减法时,借用方法的效率不及使用补数的方法。 (需要更多的电路)。进行减法操作之前要牢记的一件事是确保两者的位数相同。
base-r中两个n位无符号数字M – N的减法可以如下进行–

范例1:

  • 使用10的补码找到98765 – 4321
  • 因此,上述也意味着找到98765 – 04321的值
  • 让我们计算04321的10的补码为
100000 - 04321 = 95679

将N的10的补码加到M 98765 + 95679 = 194444,我们得到1的进位,这意味着MN为正。因此,如果有任何结果,只要除去进位,就可以得到答案,所以答案为94444。

范例2:

  • 使用10的补码找到4321-98765,我们需要计算04321-98765
  • 所以先计算98765的10的补数
  • 98765的10的补码是
100000 - 98765 = 01235
So, 01235 + 04321 = 05556 

由于没有进位(即最高有效数字为1),该数字为负数,现在我们需要再次取10的补码,并在05556前面加上减号,即

-(100000 - 05556) = -94446