二进制码和格雷码转换问题

二进制码和格雷码可以相互转换:

分别从硬件电路和软件方面实现的方法:

硬件电路:

 

 

一位不产生进位的加法电路用异或门就可以实现,下图左边为一个二进制-格雷码转换器器,右边为一个格雷码-二进制码转换器。

 

参考电路:https://blog.csdn.net/zhong_ethan/article/details/103110163

异或电路符号:

程序的算法实现:

二进制转为格雷码:

格雷码转换为二进制码

具体代码算法参考:

https://blog.csdn.net/jingfengvae/article/details/51691124 

 

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
格雷码二进制码之间可以相互转换。下面是两种转换方法: 1. 格雷码二进制码: 将格雷码的最高位赋值给二进制码的最高位; 从左到右依次处理每一位,将当前格雷码位与二进制码上一位进行异或运算,将结果赋值给二进制码当前位; 重复以上步骤,直到处理完所有位。 例如,将格雷码 1011 转换二进制码格雷码:1 0 1 1 二进制码: 将最高位 1 赋值给二进制码最高位,得到:1 。 对于第二位,格雷码位为 0 ,二进制码上一位为 1 ,异或结果为 1 ,将其赋值给二进制码当前位,得到:1 1 。 对于第三位,格雷码位为 1 ,二进制码上一位为 1 ,异或结果为 0 ,将其赋值给二进制码当前位,得到:1 1 0 。 对于第四位,格雷码位为 1 ,二进制码上一位为 0 ,异或结果为 1 ,将其赋值给二进制码当前位,得到:1 1 0 1 。 所以,格雷码 1011 转换二进制码为 1101 。 2. 二进制码格雷码: 将二进制码的最高位赋值给格雷码的最高位; 从左到右依次处理每一位,将当前二进制码位与上一位进行异或运算,将结果赋值给格雷码当前位; 重复以上步骤,直到处理完所有位。 例如,将二进制码 1101 转换格雷码二进制码:1 1 0 1 格雷码: 将最高位 1 赋值给格雷码最高位,得到:1 。 对于第二位,二进制码位为 1 ,格雷码上一位为 1 ,异或结果为 0 ,将其赋值给格雷码当前位,得到:1 0 。 对于第三位,二进制码位为 0 ,格雷码上一位为 1 ,异或结果为 1 ,将其赋值给格雷码当前位,得到:1 0 1 。 对于第四位,二进制码位为 1 ,格雷码上一位为 0 ,异或结果为 1 ,将其赋值给格雷码当前位,得到:1 0 1 1 。 所以,二进制码 1101 转换格雷码为 1011 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值