经验:如何快速地写出格雷码

经验:如何快速地写出格雷码

更新历史
201901212:

  1. 首次发布

格雷码(Binary Gray Code)的特点是:

  • 相邻两个码之间,只相差了一个比特

由于这个特性,格雷码在数字电路中使用甚广。不过,令人尴尬的是,格雷码似乎不好记。以4比特的格雷码为例:

十进制数格雷码
00000
10001
20011
30010
40110
50111
60101
70100
81100
91101
101111
111110
121010
131011
141001
151000

上表的码值显然不好记。不好记,那就找规律呗。仔细观察,可以发现:

  • 格雷码的bit0,以0110为一个周期,循环地变化;
  • 格雷码的bit1,以00111100为一个周期,循环地变化;
  • 格雷码的bit2,以0000111111110000为一个周期,循环地变化;

即:

十进制数格雷码
00 0 0 0
10 0 0 1
20 0 1 1
30 0 1 0
40 1 1 0
50 1 1 1
60 1 0 1
70 1 0 0
81 1 0 0
91 1 0 1
101 1 1 1
111 1 1 0
121 0 1 0
131 0 1 1
141 0 0 1
151 0 0 0

这个规律可以总结为:

  • 格雷码的bit n (n = 0,1,2,…),以 2 n 2^n 2n0 2 n 2^n 2n1 2 n 2^n 2n1 2 n 2^n 2n0为一个周期,循环地变化。

根据该规律,无论多少比特的格雷码,我们都可以快速地将其写出来,而不需要依靠强大的记忆力。此外,这个规律也可以用于编程序生成格雷码。

  • 40
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值