bcd - self 补码(Excess 3,84-2-1,2 * 421)

标签 bcd

我这里有一个主题,来自“数字系统”,主题为“计算机组织与体系结构简介”

然后我遇到了这个主题,“自我补充代码”

它分为三个部分,如下所示:

i)多余3(我理解这一部分,因为它要求我们在BCD中加3)

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

iii)2 * 421(我不明白)

我希望有人能解释第二和第三部分的工作原理。

非常感谢。

最佳答案

我认为莫里斯·马诺(Morris Mano)的“数字设计”这部分书将回答您的问题:

BCD和2421码是加权码的示例。在加权代码中,每一位
为位置分配一个权重因子,以便可以通过以下方式评估每个数字:
将编码组合中所有1的权重相加。

十进制数字的四种不同的二进制代码
______________________________________________________________
十进制BCD 2421多余3、8、4,-2,-1
数字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
未使用1011 0110 0001 0010
位1100 0111 0010 0011
组合-1101 1000 1101 1100
各国1110 1001 1110 1101
1111 1010 1111 1110

2421,excess-3和84-2-1码是自补码的示例。这样的
代码具有以下特性:获得十进制数字的9的补码
直接将1更改为0,将0更改为1(即通过对模式中的每个位进行补码)即可。例如,十进制395在超额3码中表示为0110 1100 1000。
9的补数604表示为1001 0011 0111,可以简单地获得
通过对代码的每一位进行补码(与二进制数的1补码一样)。

数字设计-第五版-莫里斯·马诺(Morris Mano)

关于bcd - self 补码(Excess 3,84-2-1,2 * 421),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748301/

相关文章:

tcp - 二进制编码的小数(BCD)放入C#中的一个字节

python - 使用python进行数据编码和解码

assembly - 二进制到BCD转换

java - 使二进制加法表现得像(压缩的)十进制加法

sum - Verilog 中的 BCD 加法器

digital - 将六位二进制数转换为对应的两位BCD数?

组装说明 : AAA

currency - 如何用 R3 钱显示美分?