数字电路 - 代码
在编码中,当数字或字母由一组特定的符号表示时,就称该数字或字母正在被编码。该组符号称为代码。数字数据以位组的形式表示、存储和传输。该组位也称为二进制代码。
二进制代码可分为两种类型。
- 加权代码
- 非加权代码
如果代码具有位置权重,则称为加权代码。否则,它就是非加权代码。加权代码可进一步分为正加权代码和负加权代码。
十进制数字的二进制代码
下表显示了十进制数字 0 到 9 的各种二进制代码。
十进制数字 | 8421 代码 | 2421 代码 | 84-2-1 代码 | 余数 3 代码 |
---|---|---|---|---|
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 种零和一组合。
8 4 2 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 码
此码的权重为 2、4、2 和 1。
此码的权重均为正。因此,它是一个 正权重码。
它是一个 非自然 BCD 码。非自然 BCD 码的权重之和等于 9。
它是一个 自补 码。自补码提供十进制数的 9 的补码,只需在其等效的 2421 表示中交换 1 和 0 即可。
示例
让我们找到十进制数 786 的 2421 等价数。此数字有 3 个十进制数字 7、8 和 6。从表中,我们可以分别写出 7、8 和 6 的 2421 代码为 1101、1110 和 1100。
因此,十进制数 786 的 2421 等价数为 110111101100。
8 4 -2 -1 代码
此代码的权重为 8、4、-2和 -1。
此代码具有负权重和正权重。因此,它是一个负加权代码。
它是一个非自然的BCD代码。
它是一个自补代码。
示例
让我们找出十进制数786的8 4-2-1等价数。这个数字有3个十进制数字7、8和6。从表中,我们可以写出7、8和6的8 4 -2 -1代码分别为1001、1000和1010。
因此,十进制数786的8 4 -2 -1等价数为100110001010。
3 代码
此代码没有任何权重。因此,它是一个无权重代码。
我们将通过将 3(0011)添加到十进制数的二进制等值中来获得十进制数的余 3 代码。因此,它被称为余3码。
它是一个自补码。
示例
让我们找出十进制数786的余3等值。这个数字有3个十进制数字7、8和6。从表中,我们可以写出7、8和6的余3代码分别为1010、1011和1001。
因此,十进制数786的余3等值为101010111001
格雷码
下表显示了与每个4位二进制代码相对应的4位格雷码。
十进制数 | 二进制码 | 格雷码 |
---|---|---|
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 左侧放置一个零。
从零开始比较连续的两个位。如果这两个位相同,则输出为零。否则输出一。
重复上述步骤,直到得到格雷码的最低有效位。
示例
从表中可知,二进制码1000对应的格雷码为1100。现在,我们用上述步骤来验证一下。
已知二进制码为1000。
步骤1 − 通过在MSB左边放置零,二进制码将为01000。
步骤2 − 通过比较新二进制码的连续两位,我们将得到格雷码为1100。