经验:如何快速地写出格雷码
经验:如何快速地写出格雷码
更新历史
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,…),以2n2^n2n个0、2n2^n2n个1、2n2^n2n个1、2n2^n2n个0为一个周期,循环地变化。
根据该规律,无论多少比特的格雷码,我们都可以快速地将其写出来,而不需要依靠强大的记忆力。此外,这个规律也可以用于编程序生成格雷码。
经验:如何快速地写出格雷码相关推荐
- 【例题】给定一个浮点格式(IEEE 754),有k位指数和n位小数,对于下列数,写出阶码E、尾数M、小数f和值V的公式。另外,请描述其位表示。
前言: 上次学习汇编语言(清华大学 张悠慧)是在11月26日,内容是IEEE 754(浮点数表示).当时撇下了一道题,等度过了12月(英语六级+本科阶段的最后考试+最后的大作业)再把汇编捡起来.现在正 ...
- SEOer在网站优化中,如何快速的写出原创的文章?
成都SEO:关于行业企业站的原创文章该怎么写呢,相信这是一个令很多企业网站优化的人头痛的问题,尤其是专业行业,比如:橡胶止水带.钢铁.制造.机械等等行业,如果你写一篇行业相关的原创文章,对于普通的se ...
- 如何快速的写出原创文章原创内容
互联网时代,发表原创文章的渠道越来越多,比如个人博客.新闻网站.SNS等. 发表原创文章是一个值得讨论的话题. 首先,要发表一篇原创文章,我们需要考虑文章的内容和受众. 如果您发布的内容是技术新闻或更 ...
- 格雷码、二进制码、BCD编码
格雷码 格雷码(12页).pdf 格雷码(12页).pdf-其它文档类资源-CSDN下载 奇偶校验码(25页).pdf 奇偶校验码(25页).pdf-其它文档类资源-CSDN下载 经验:如何快速地写出 ...
- python用什么软件编程1001python用什么软件编程-怎样才能写出 Pythonic 的代码 #P1001#...
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- python好学吗1001python好学吗-怎样才能写出 Pythonic 的代码 #P1001#
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- python open方法1001python open方法_怎样才能写出 Pythonic 的代码 #P1001#
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- python发音1001python发音-怎样才能写出 Pythonic 的代码 #P1001#
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- php教程7天速成,练字速成法一周写出一手漂亮的字!【7天练字速成】
练字速成法有吗?成年人练字速成法到底有没有?目前很多的朋友都希望能够快速的写出一手漂亮的字,目前要步入社会的大学生们.以及已经步入社会中的工作者对于写字的美观比较重视,因为大家都深知能够写出一手好字绝 ...
最新文章
- 中国AI专利申请量占全球74%,腾讯、百度、OPPO前五
- 图灵奖得主杨立昆:人工智能比你更聪明吗?
- align与valign的区别
- 《3D打印:正在到来的工业革命(第2版)》——1.6节先驱者们在做什么
- 为什么有人会觉得灵魂无处安放
- 在Spring Boot中使用 @ConfigurationProperties 注解
- MVC3.0+DWZ探索
- plsql 无法解析指定的连接标识符_TNS03505:无法解析名称
- 英语每日阅读---3、VOA慢速英语(翻译+字幕+讲解):哈佛大学被控歧视亚裔学生
- 前端工程师提高工作效率的几个小技巧
- SQL安装过程中出现的错误解决
- 2019Java面试题
- 深入理解DNS(域名系统)
- iOS-图文混排方案-2种方案
- [转载]如何让上传到新浪博客和相册中的照片更大更清晰_我是亲民_新浪博客
- Android向:实现同一局域网内两台手机之间的文件互传
- 2021年11月_IEEE Transactions on Geoscience and Remote Sensing_科技前言热点调查表
- 金蝶EAS客户端隐藏快捷键
- 去培训基础报班学UI设计靠谱吗?
- python hadoop wordcount_在Hadoop上用Python实现WordCount
热门文章
- 美剧字幕组长讲述她如何练听力的
- C++ —— 宏对于简化类接口的奇技淫巧
- vue2 + tinymce 包含自定义图片上传及视频、音频上传
- AC-DMIS 5.3自动测量平面(自定义触测点、批量测量)
- 发现新的恶意 Torii IoT 僵尸网络
- 数据库的基本命令 创建数据库 创建表 插入数据
- 喜大普奔!GitHub 官方 App 正式版首发!
- 关于计算机算法的ppt,中科院计算机算法分析与设计_习题3-4_答案.ppt
- 见证一张CAD图如何蜕变成一个高大上的三维地形模型(一)
- ABAP 类方法获取长文本内容