二进制和格雷码转换方法及程序

  • 1 格雷码介绍
  • 2 二进制转格雷码
  • 3 格雷码转二进制

1 格雷码介绍

格雷码(Gray code)是1880年由法国工程师Jean-Maurice-Emlle Baudot发明的一种编码,是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
格雷码是一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一 的。

格雷码的构造方法为:直接排列以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反覆,即可排列出n个位元的格雷码。

二进制和格雷码转换方法及程序相关推荐

  1. 减治法在生成子集问题中的应用(JAVA)--递归、二进制反射格雷码

    减治法在生成组合对象问题中的应用 生成子集问题:经典的背包问题就是求解一个最优子集的问题,这里我们来讨论一个更简单的问题.对于任意一个集合来说,它都存在2^n个子集(一个集合所有的子集集合称为幂集). ...

  2. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码

    1.1 FPGA面试题-使用Verilog HDL编写二进制转格雷码 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-使用Verilog HDL编写二进制 ...

  3. 生成二进制反射格雷码

    递归生成二进制反射格雷码: 需求: ​ 我们使用递归的方式来生成二进制的反射格雷码. 什么是格雷码? ​ 典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格 ...

  4. 自然二进制与格雷码的转换

    自然二进制:Bn-1Bn-2-.B2B1B0 格雷码      :Gn-1Gn-2-G2G1G0 自然二进制转格雷码公式: Gi = Bi ,i = n-1 Gi = Bi xor Bi+1 ,i = ...

  5. 【FPGA实验2】二进制转为格雷码

    关于FPGA入门实验2--二进制到格雷码的转换的一个记录 实验中作用到的仪器信息: 芯片商家:ALTERA 编程软件:Quartus II 试验箱上的芯片型号:EP4CE6E22C8N 快速导航

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

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

  7. 格雷码转换成二进制c语言程序,格雷码与二进制的转换程序

    /* 格雷码与二进制的转换程序 * 本程序采用递推的方法进行推导,可以转换0~2147483647之间的数(1~31位) * 推导方式如下(以三位格雷码为例): * 序号 格雷码 格雷码实值 二进制码 ...

  8. chisel格雷码二进制转换

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

  9. 格雷码编码与二进制的关系

    一.  格雷码的编码规则 递归推导方法: 1位格雷码有两个码字(0和1) (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0 (n+1)位格雷码中的后2n个码字等于n位格雷码 ...

最新文章

  1. 循环for语句 if语句
  2. 关于学习Python的一点学习总结(30->递归实例)
  3. button按钮无法提交表单问题发现与解决
  4. 手动清除后门程序Iexplores.exe
  5. java使用循环案例——CSDN博客
  6. leetcode546. 移除盒子(dp)
  7. java 函数委托_Java反射实现.NET委托
  8. 3DMax基础入门教程,命令面板的设置简介以及功能
  9. python进销存课程_蜗牛笔记-文章-蜗牛进销存项目实战(一)
  10. Java实现MySql分页查询
  11. 【小程序源码】笑话段子手
  12. 如何在CSDN上上传资源
  13. Reporting Services 配置工具
  14. 研究生期间如何赚外快
  15. 掌阅Android App插件补丁实践(ZeusPlugin)
  16. 高中计算机八字标语,高中励志八字标语40句
  17. 垃圾分类与AI的反碎片之旅
  18. ***万象服务器的方法
  19. html2canvas动态图片ios空白,html2canvas ios系统保存图片空白问题
  20. neo4j图形数据库第七弹——整合vis.js实现数据可视化

热门文章

  1. 9多态(继承,重写)
  2. HM-3410: Create Area Connectors(创建区域连接器)
  3. 键盘中按键对应的键码值
  4. 【干货】2021人工智能核心技术产业白皮书.pdf(附下载链接)
  5. Vivado 2018.3 安装步骤及 license 获取
  6. 串口RS232/RS485/RS422的DB9引脚定义
  7. 新版盲盒交友程序源码V3
  8. EZ-USB FX2LP,CY7C68013A学习笔记[1]
  9. h5获取安卓定位_H5 移动端获取当前位置
  10. 二维图 CAD图 方案设计