自补码(超额3,84-2-1,2*421)

Bet*_*cks 5 bcd

我在这里有一个主题,来自"计算机组织与架构简介"主题中的"数字系统"

然后我遇到了这个话题,"自我补充代码"

它有3个部分如下:

i)Excess-3(我理解这一部分,因为它要求我们在BCD上加3)

ii)84-2-1(我不明白)

iii)2*421(我不明白)

我希望有人可以解释第ii和iii部分是如何工作的.

非常感谢.

小智 7

我认为Morris Mano的"数字设计"一书的这一部分将回答你的问题:

BCD和2421代码是加权代码的示例.在加权代码中,为每个比特位置分配加权因子,使得可以通过在编码组合中添加所有1的权重来评估每个数字.

Four Different Binary Codes for the Decimal Digits
_____________________________________________________________
Decimal     BCD          2421       Excess?3    8, 4, -2, -1
 Digit      8421
_____________________________________________________________
 0          0000         0000         0011         0000
 1          0001         0001         0100         0111
 2          0010         0010         0101         0110
 3          0011         0011         0110         0101
 4          0100         0100         0111         0100
 5          0101         1011         1000         1011
 6          0110         1100         1001         1010
 7          0111         1101         1010         1001
 8          1000         1110         1011         1000
 9          1001         1111         1100         1111
_____________________________________________________________
            1010         0101         0000         0001
 Unused     1011         0110         0001         0010
 bit        1100         0111         0010         0011
 combi-     1101         1000         1101         1100
 nations    1110         1001         1110         1101
            1111         1010         1111         1110

2421,多余-3和84-2-1代码是自补码的例子.这样的代码具有以下特性:通过将1改为0并且将0改为1来直接获得十进制数的9的补码(即,通过补充模式中的每个位).例如,十进制395在过量-3代码中表示为0110 1100 1000. 604的9的补码表示为1001 0011 0111,这是通过补码代码的每个位得到的(与1的二进制数的补码一样) ).

数字设计 - 第五版 - 莫里斯马诺


小智 5

首先,84-2-1 & 2421 码既是“加权码”又是“自补码”(因为一个码要自补的必要条件是它的所有权重之和必须等于 9) 即 84-2-1(8+4-2-1=9) 和,2421(2+4+2+1=9)。
所以,构造十进制的二进制等价物你需要确定一件事:
数字的代码和它的9的补码应该有互补关系(即数字和它的9的补码是互补的)

例如,让我们以 84-2-1 系统为例。

十进制 0=0000(在 84-2-1 系统中)&(9 的 0=9 的补码)比 9(在 84-2-1 中)应该有 1111。因此 0 和它的 9 的补码即 9 保持它们的自补关系.

让我们再举一个例子:

十进制 1=0111(在 84-2-1 系统中)&(1=8 的 9 的补码),这意味着(84-2-1)等于 8 应该是 1000,因此数字及其补码再次保持它们的自补关系。

同样,在 2421 系统中,您只需通过确保数字及其 9 的补码保持自补关系来构建代码。