📅  最后修改于: 2021-01-08 05:39:14             🧑  作者: Mango
在编码中,当数字或字母由特定的符号组表示时,可以说是数字或字母正在被编码。这组符号称为代码。数字数据以位组的形式表示,存储和传输。这组位也称为二进制代码。
二进制代码可以分为两种类型。
如果代码具有位置权重,则称其为加权代码。否则,它是未加权的代码。加权码可以进一步分为正加权码和负加权码。
下表显示了从0到9的十进制数字的各种二进制代码。
Decimal Digit | 8421 Code | 2421 Code | 84-2-1 Code | Excess 3 Code |
---|---|---|---|---|
0 | 0000 | 0000 | 0000 | 0011 |
1 | 0001 | 0001 | 0111 | 0100 |
2 | 0010 | 0010 | 0110 | 0101 |
3 | 0011 | 0011 | 0101 | 0110 |
4 | 0100 | 0100 | 0100 | 0111 |
5 | 0101 | 1011 | 1011 | 1000 |
6 | 0110 | 1100 | 1010 | 1001 |
7 | 0111 | 1101 | 1001 | 1010 |
8 | 1000 | 1110 | 1000 | 1011 |
9 | 1001 | 1111 | 1111 | 1100 |
我们的十进制数字系统有10位数字。为了用二进制表示这10位数字,我们至少需要4位。但是,使用4位,将有16个零和一的唯一组合。由于我们只有10个十进制数字,因此不需要其他6个零和1的组合。
该代码的权重为8、4、2和1。
此代码具有所有正向权重。因此,它是一个正加权代码。
该代码也称为自然BCD (二进制编码的十进制)代码。
例
让我们找到等效于十进制数字786的BCD。该数字具有3个十进制数字7、8和6。从表中,我们可以将7、8和6的BCD(8421)代码分别写为0111、1000和0110。 。
∴(786) 10 =(011110000110) BCD
BCD表示中有12位,因为每个十进制数字的BCD码都有4位。
该代码的权重为2、4、2和1。
此代码具有所有正向权重。因此,它是一个正加权代码。
这是不自然的BCD代码。非自然BCD码的权重之和等于9。
这是一个自我补充的代码。自补码通过在等效的2421表示中互换1和0来提供十进制数的9的补码。
例
让我们找到等效于十进制数字786的2421。该数字具有3个十进制数字7、8和6。从表中,我们可以将7、8和6的2421代码分别写为1101、1110和1100。
因此,与十进制数786相等的2421是110111101100 。
该代码的权重为8、4,-2和-1。
此代码具有负权重和正权重。因此,它是负加权代码。
这是不自然的BCD代码。
这是一个自我补充的代码。
例
让我们找到等效于十进制数786的8 4-2-1。该数字具有3个十进制数字7、8和6。从表中,我们可以编写8 4 -2 -1代码7、8和6分别是1001、1000和1010。
因此,十进制数786的8 4 -2 -1等效为100110001010 。
该代码没有权重。因此,这是未加权的代码。
通过将十进制数的二进制等价数加三(0011),我们将获得十进制数的“超额3”代码。因此,它被称为超额3码。
这是一个自我补充的代码。
例
让我们找到十进制数字786的超额3等效项。该数字具有3个十进制数字7、8和6。从表中,我们可以将7、8和6的超额3码分别写为1010、1011和1001。
因此,十进制数786的超额3等于101010111001
下表显示了与每个4位二进制代码相对应的4位格雷代码。
Decimal Number | Binary Code | Gray Code |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
该代码没有权重。因此,这是未加权的代码。
在上表中,连续的格雷码仅在一位位置上有所不同。因此,该代码称为单位距离代码。
请按照以下步骤将二进制代码转换为等效的格雷代码。
考虑给定的二进制代码,并在MSB的左侧放置一个零。
比较从零开始的连续两位。如果两个位相同,则输出为零。否则,输出为1。
重复上述步骤,直到获得格雷码的LSB。
例
从表中,我们知道对应于二进制代码1000的格雷代码是1100。现在,让我们使用上述过程进行验证。
给定的二进制代码是1000。
步骤1-通过在MSB的左侧放置零,二进制代码将为01000。
步骤2-通过比较新二进制代码的连续两位,我们将得到格雷码为1100 。