我在这里有一个主题,来自"计算机组织与架构简介"主题中的"数字系统"
然后我遇到了这个话题,"自我补充代码"
它有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 的补码保持自补关系来构建代码。