经验:如何快速地写出格雷码
更新历史
201901212:
- 首次发布
格雷码(Binary Gray Code)的特点是:
- 相邻两个码之间,只相差了一个比特
由于这个特性,格雷码在数字电路中使用甚广。不过,令人尴尬的是,格雷码似乎不好记。以4比特的格雷码为例:
十进制数 | 格雷码 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0011 |
3 | 0010 |
4 | 0110 |
5 | 0111 |
6 | 0101 |
7 | 0100 |
8 | 1100 |
9 | 1101 |
10 | 1111 |
11 | 1110 |
12 | 1010 |
13 | 1011 |
14 | 1001 |
15 | 1000 |
上表的码值显然不好记。不好记,那就找规律呗。仔细观察,可以发现:
- 格雷码的bit0,以0、1、1、0为一个周期,循环地变化;
- 格雷码的bit1,以0、0、1、1、1、1、0、0为一个周期,循环地变化;
- 格雷码的bit2,以0、0、0、0、1、1、1、1、1、1、1、1、0、0、0、0为一个周期,循环地变化;
即:
十进制数 | 格雷码 |
---|---|
0 | 0 0 0 0 |
1 | 0 0 0 1 |
2 | 0 0 1 1 |
3 | 0 0 1 0 |
4 | 0 1 1 0 |
5 | 0 1 1 1 |
6 | 0 1 0 1 |
7 | 0 1 0 0 |
8 | 1 1 0 0 |
9 | 1 1 0 1 |
10 | 1 1 1 1 |
11 | 1 1 1 0 |
12 | 1 0 1 0 |
13 | 1 0 1 1 |
14 | 1 0 0 1 |
15 | 1 0 0 0 |
这个规律可以总结为:
- 格雷码的bit n (n = 0,1,2,…),以 2 n 2^n 2n个0、 2 n 2^n 2n个1、 2 n 2^n 2n个1、 2 n 2^n 2n个0为一个周期,循环地变化。
根据该规律,无论多少比特的格雷码,我们都可以快速地将其写出来,而不需要依靠强大的记忆力。此外,这个规律也可以用于编程序生成格雷码。
今天的文章经验:如何快速地写出格雷码分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/4973.html