格雷码转二进制
十进制 二进制 格雷码 转换关系表
| 十进制 | 二进制 | 格雷码 |
|---|---|---|
| 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 |
格雷码如何转二进制
转换规则有两个
- 二进制的最高位为给定格雷码的最高位
- 二进制码的其他位可以通过检查该索引处的格雷码位来获得。如果当前格雷码位为 0,则复制前一个二进制码位,否则复制前一个二进制码位的反转。
例如格雷码为 0101 转为 二进制为 0110
格雷码的最高位为0,二进制为0
格雷码的第2位为1,二进制的上一位为0 异或后为 1
格雷码的第3位为0,二进制的上一位为1 复制后为 1
格雷码的第4位为1,二进制的上一位为1 异或后为 0
所以最后转为二进制为0110
格雷码是什么
格雷码是一个二进制数系,其中两个相邻数的二进制位只有一位不同(任意两个相邻的代码只有一位二进制数不同)。格雷码由贝尔实验室的 Frank Gray 于 1940 年代提出,并于 1953 年获得专利。
举个例子, 3位二进制数的格雷码序列为:
000,001,011,010,110,111,101,100
- 000和001只有一位不同
- 001和011只有一位不同
- ...
- ...
- 101和100只有一位不同