数字电路 - 代码

在编码中,当数字或字母由一组特定的符号表示时,就称该数字或字母正在被编码。该组符号称为代码。数字数据以位组的形式表示、存储和传输。该组位也称为二进制代码

二进制代码可分为两种类型。

  • 加权代码
  • 非加权代码

如果代码具有位置权重,则称为加权代码。否则,它就是非加权代码。加权代码可进一步分为正加权代码和负加权代码。

十进制数字的二进制代码

下表显示了十进制数字 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