📜  数字电路-代码

📅  最后修改于: 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代码

  • 该代码的权重为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。

  • 这是一个自我补充的代码。自补码通过在等效的2421表示中互换1和0来提供十进制数的9的补码。

让我们找到等效于十进制数字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。从表中,我们可以编写8 4 -2 -1代码7、8和6分别是1001、1000和1010。

因此,十进制数786的8 4 -2 -1等效为100110001010

多余的3码

  • 该代码没有权重。因此,这是未加权的代码

  • 通过将十进制数的二进制等价数加三(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