发现数电书中对于格雷码并没有很好地解释,这里保留下来所理解的知识供自己日后查看。这里主要说明排列规律和转换。

格雷码特点:

任意两个相邻的代码只有一位二进制数不同。并且首尾相连,属于循环码(这里我发现百度有说不是的,特此注明)。

镜像排列规律:

如果要画卡诺图,镜像格雷码是必须的。生成二进制格雷码方式2的n次方位元的格雷码可以从n-1位元的格雷码以上下镜射后加上新位元的方式快速的得到,如图所示。

具体步骤:

  1. 写出 0, 1
  2. 在1的基础上,构造镜像0,1,1,0
  3. 在2的基础上,从上向下扩展最高位0,从下到上拓展最高位1,直至对称线两个相遇停止。这样就变成了00,01,11,10
  4. 在3的基础上,重复2,3步骤,得到000,001,011,010,110,111,101,100
  5. 按照上述方法不停拓展得到你需要的位数格雷码,即n位格雷码是基于n-1位格雷码产生的。

转换:

自然二进制转换为格雷码方法:
保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
这里引用一张说明的很好的图片:

格雷码转换为自然二进制码的方法:
保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。
同样给出图解,注意这里异或的对象由待转换数变成了转换结果中的数:

文章参考:

  • 维基百科格雷码:https://zh.wikipedia.org/zh-cn/%E6%A0%BC%E9%9B%B7%E7%A0%81
  • 格雷码转换:https://blog.csdn.net/jingfengvae/article/details/51691124
  • 格雷码详解:https://www.cnblogs.com/zhuruibi/p/8988044.html

关于格雷码的规律、转换相关推荐

  1. 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)

    目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...

  2. 格雷码与二进制码转换

    格雷码转二进制码 二进制码转格雷码 代码如下 //gray to bin module gray2bin #(parameter ADDR_WIDTH=8)(input [ADDR_WIDTH-1:0 ...

  3. 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律

    格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...

  4. 数电 8421码与格雷码的转换

    8421码向格雷码转化,照抄第一位即格雷码第一位,8421码第一位与第二位,相比按照同0异1,写格雷码第二位,8421码第二位与第三位相比,得格雷码第三位,类推格雷码第四位.因相比如图像Y,可记作二哥 ...

  5. chisel格雷码二进制转换

    一.格雷码简介 格雷码是一个叫弗兰克*格雷的人在 1953 年发明的,最初用于通信.格雷码是一种循环二进制码或者叫作反射二进制码.格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于 ...

  6. C语言学习:二进制码与格雷码的转换

    格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同. 格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不 ...

  7. 格雷码应用意义及编解码

    文章目录 1. 格雷码的应用意义 2. 由自然数编码获得格雷码 2.1 对称法实现 2.2 公式法实现 3. 由格雷码解码获得自然数 1. 格雷码的应用意义 学过晶体管知识的朋友们都知道,数据位跳变就 ...

  8. 浅谈格雷码(Grey Code)在信息学竞赛中的应用

    1.格雷码的概念 1.性质 格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同. 常用的二进制数与格雷码间的转换关系如 ...

  9. 算法学习(6)----整数转换为格雷码

    在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环码或反 ...

最新文章

  1. SpringCloud学习成长之 十一 Docker部署cloud项目
  2. 计算机考试用英语怎么说,“全国大学生计算机等级考试一级”英语怎么说?
  3. OWASP-ZAP扫描器的使用(攻击)
  4. Linux 守护进程的启动方法
  5. /bin/false /sbin/nologin
  6. import package java_java初学者,如何理解package和import?
  7. python大牛是什么水平_yield--Python大牛必须掌握的高端语法
  8. 产品读书《麦肯锡方法》
  9. MAVEN setting.xml配置文件详解
  10. pythonlbp纹理提取_特征提取算法(1)——纹理特征提取算法LBP
  11. 2022-9-28 c高级的复习
  12. 《算法图解》系列笔记(七)—— 狄克斯特拉算法
  13. uniapp 旅游_uni-app旅游类跨平台APP制作实战教程
  14. 如何通过文献查找该文献的代码
  15. HMailServer 5.6版本完整版汉化包
  16. 计算机管理日志清除怎么清除,电脑使用记录清除技巧大全
  17. 先照顾好自己,才能更好的去照顾别人
  18. Novamind 5 安装+和谐----请在补丁前关闭文件,和谐不成功
  19. 总结及寒假计划 2019.1
  20. Java 8 辣么大(lambda)表达式不慌之-----(一)Function

热门文章

  1. 写了几天的软工课程设计,慢慢了解了点mvc
  2. 自定义用户控件,实在数据动态提示
  3. MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功
  4. PAT1066 Root of AVL Tree (25)(AVL树)
  5. 集合框架源码学习之HashMap(JDK1.8)
  6. Unity版本使用情况统计报告
  7. Linux安装压缩版的mysql
  8. [转载] 管Q某犇借的手写堆
  9. 深刻理解Python中的元类(metaclass)以及元类实现单例模式
  10. FatFs文件系统的移植