自然二进制:Bn-1Bn-2….B2B1B0

格雷码      :Gn-1Gn-2…G2G1G0

自然二进制转格雷码公式: Gi = Bi ,i = n-1

Gi = Bi xor Bi+1 ,i = 0:n-2

格雷码转自然二进制:Bi = Gi,i = n-1

Bi-1 = Gi-1 xor Bi,i = 1:n-1

 一般的,普通二进制码与格雷码可以按以下方法互相转换: 
  二进制码->格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR)(http://bk.7tmusic.com/lemma-php/dispose/view.php/379209.htm),作为对应格雷码该位的值,最左边一位不变(相当于左边是0); 
  格雷码-〉二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变).

modele bin2gry(Gry,Bin)
parameter length = 8;
output [length-1:0] Gry;
input [length-1:0] Bin;

reg [length-1:0] Gry;
integer i;

always @ (Bin)
begin
    for(i=0;i<length-1;i++)
        Gry[i]=Bin[i]^Bin[i+1];
    Gry[i]=Bin[i];
end
endmodule

modele gry2bin(Gry,Bin)
parameter length = 8;
output [length-1:0] Gry;
input [length-1:0] Bin;

reg [length-1:0] Bin;
integer i;
always @ (Gry)
begin   
    Bin[length-1]=Gry[length-1];   
    for(i=length-2;i>=0;i--)       
        Bin[i]=Bin[i+1]^Gry[i];
end
endmodule

转载于:https://www.cnblogs.com/lueguo/p/3357031.html

自然二进制与格雷码的转换相关推荐

  1. 自然二进制数与格雷码的相互转换

    自然二进制码与格雷码的相互转换 一.前言 二.自然二进制数转格雷码 2.1 自然二进制数转格雷码原理 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.格雷码转自然二进制数 ...

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

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

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

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

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

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

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

    二进制和格雷码转换方法及程序 1 格雷码介绍 2 二进制转格雷码 3 格雷码转二进制 1 格雷码介绍 格雷码(Gray code)是1880年由法国工程师Jean-Maurice-Emlle Baud ...

  6. 自然二进制码与格雷码相互转换【CSDN】

    自然二进制码与格雷码相互转换 一.格雷码简介 格雷码是由弗兰克·格雷于1953年发明,其主要特点是相邻编码值中间只有一个比特发生改变,又被称为循环码. 格雷码是一种无权码,采用绝对编码方式,典型格雷码 ...

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

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

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

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

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

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

最新文章

  1. 50行Python代码,获取公众号全部文章
  2. MacPro 系统空间竟占90G,如何清理--OmniDiskSweeper
  3. python grpc_python中grpc的使用示例
  4. 蜜罐中利用jsonp跨域漏洞和xss漏洞的分析
  5. apt-get erro
  6. (原创)如何解决matlab乱码问题
  7. c语言二维数组应该注意,第08天C语言(02):二维数组-注意点
  8. 叩丁狼开发工程师:SSR服务架构特点分析
  9. java game nokia 5233 model,诺基亚S60/^3完美运行GBA游戏教程 重回孩提时代
  10. 世界五大学习方法之费曼技巧
  11. 内网集群 无法通信_IPSEC连接成功,内网之间却无法互相通信。
  12. 密苏里大学理工学院计算机,密苏里大学理工学院
  13. mysql数据库递归访问数据
  14. 2022年虚拟电厂行业研究报
  15. 【每日早报】2019/06/25
  16. Python 下标异常
  17. 纳米二氧化硅/分解酶/聚己内酯复合微球/银纳米颗粒修饰二氧化硅微球SERS基底的应用
  18. 当网红本人成为网红毒瘤:Vtuber的纸片人模式能够破解困局吗?
  19. EPS的简单操作使用
  20. Java中 for(int i:index)什么意思!

热门文章

  1. @Value(${}) 与@Value(#{}) 区别
  2. Hi,这有一份风控体系建设干货
  3. iTunes备份到电脑F盘
  4. XML 解析错误:找不到根元素
  5. Spring事务报错: org.springframework.transaction.UnexpectedRollbackException
  6. python 写入excel数字格式_从Pandas写入Excel时设置默认数字格式
  7. a股历史30年的大盘价_中国股市历史图(中国股市30年走势图)
  8. 完美解决:Chrome浏览器无法自动保存/填充密码
  9. Echart.js China.js制作中国热力图
  10. The run destination XXX的 iPhone is not valid for Running the scheme 'Day7通讯录Demo'.