📜  数字电子产品教程中的格雷码

📅  最后修改于: 2020-12-30 04:22:36             🧑  作者: Mango

格雷码

格雷码是二进制数字系统的序列,也称为反射二进制代码。之所以将此代码称为反射二进制代码,是因为前N / 2个值与后N / 2个值的倒序比较。在此代码中,两个连续的值相差一位二进制数字。在硬件生成的二进制数的一般顺序中使用格雷码。从一个数字过渡到其连续数时,这些数字会引起歧义或错误。此代码仅通过在数字之间进行转换时仅更改一位来解决此问题。

格雷码是很轻的加权码,因为它不取决于位置指定的数字值。此代码也称为循环变量代码,因为一个值到其连续值的转换仅携带一位变化。

如何生成格雷码?

前缀和反射方法递归用于生成数字的格雷码。为了生成格雷码:

  • 我们找到代表一个数字所需的位数。
  • 接下来,我们找到0的代码,即0000,与二进制代码相同。
  • 现在,我们采用之前的代码,即0000,并更改其最高有效位。
  • 我们将反复执行此过程,直到未唯一标识所有代码为止。
  • 如果通过更改最高有效位来找到之前获得的相同代码,则第二最高有效位将被更改,依此类推。

生成格雷码的过程

格雷码表

Decimal Number Binary Number 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