关于格雷码的规律、转换
发现数电书中对于格雷码并没有很好地解释,这里保留下来所理解的知识供自己日后查看。这里主要说明排列规律和转换。
格雷码特点:
任意两个相邻的代码只有一位二进制数不同。并且首尾相连,属于循环码(这里我发现百度有说不是的,特此注明)。
镜像排列规律:
如果要画卡诺图,镜像格雷码是必须的。生成二进制格雷码方式2的n次方位元的格雷码可以从n-1位元的格雷码以上下镜射后加上新位元的方式快速的得到,如图所示。
具体步骤:
- 写出 0, 1
- 在1的基础上,构造镜像0,1,1,0
- 在2的基础上,从上向下扩展最高位0,从下到上拓展最高位1,直至对称线两个相遇停止。这样就变成了00,01,11,10
- 在3的基础上,重复2,3步骤,得到000,001,011,010,110,111,101,100
- 按照上述方法不停拓展得到你需要的位数格雷码,即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
关于格雷码的规律、转换相关推荐
- 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)
目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...
- 格雷码与二进制码转换
格雷码转二进制码 二进制码转格雷码 代码如下 //gray to bin module gray2bin #(parameter ADDR_WIDTH=8)(input [ADDR_WIDTH-1:0 ...
- 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律
格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...
- 数电 8421码与格雷码的转换
8421码向格雷码转化,照抄第一位即格雷码第一位,8421码第一位与第二位,相比按照同0异1,写格雷码第二位,8421码第二位与第三位相比,得格雷码第三位,类推格雷码第四位.因相比如图像Y,可记作二哥 ...
- chisel格雷码二进制转换
一.格雷码简介 格雷码是一个叫弗兰克*格雷的人在 1953 年发明的,最初用于通信.格雷码是一种循环二进制码或者叫作反射二进制码.格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于 ...
- C语言学习:二进制码与格雷码的转换
格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同. 格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不 ...
- 格雷码应用意义及编解码
文章目录 1. 格雷码的应用意义 2. 由自然数编码获得格雷码 2.1 对称法实现 2.2 公式法实现 3. 由格雷码解码获得自然数 1. 格雷码的应用意义 学过晶体管知识的朋友们都知道,数据位跳变就 ...
- 浅谈格雷码(Grey Code)在信息学竞赛中的应用
1.格雷码的概念 1.性质 格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同. 常用的二进制数与格雷码间的转换关系如 ...
- 算法学习(6)----整数转换为格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环码或反 ...
最新文章
- SpringCloud学习成长之 十一 Docker部署cloud项目
- 计算机考试用英语怎么说,“全国大学生计算机等级考试一级”英语怎么说?
- OWASP-ZAP扫描器的使用(攻击)
- Linux 守护进程的启动方法
- /bin/false /sbin/nologin
- import package java_java初学者,如何理解package和import?
- python大牛是什么水平_yield--Python大牛必须掌握的高端语法
- 产品读书《麦肯锡方法》
- MAVEN setting.xml配置文件详解
- pythonlbp纹理提取_特征提取算法(1)——纹理特征提取算法LBP
- 2022-9-28 c高级的复习
- 《算法图解》系列笔记(七)—— 狄克斯特拉算法
- uniapp 旅游_uni-app旅游类跨平台APP制作实战教程
- 如何通过文献查找该文献的代码
- HMailServer 5.6版本完整版汉化包
- 计算机管理日志清除怎么清除,电脑使用记录清除技巧大全
- 先照顾好自己,才能更好的去照顾别人
- Novamind 5 安装+和谐----请在补丁前关闭文件,和谐不成功
- 总结及寒假计划 2019.1
- Java 8 辣么大(lambda)表达式不慌之-----(一)Function
热门文章
- 写了几天的软工课程设计,慢慢了解了点mvc
- 自定义用户控件,实在数据动态提示
- MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功
- PAT1066 Root of AVL Tree (25)(AVL树)
- 集合框架源码学习之HashMap(JDK1.8)
- Unity版本使用情况统计报告
- Linux安装压缩版的mysql
- [转载] 管Q某犇借的手写堆
- 深刻理解Python中的元类(metaclass)以及元类实现单例模式
- FatFs文件系统的移植