我是靠谱客的博主 忐忑航空,最近开发中收集的这篇文章主要介绍格雷码转换成二进制c语言程序,格雷码与二进制的转换程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/* 格雷码与二进制的转换程序

* 本程序采用递推的方法进行推导,可以转换0~2147483647之间的数(1~31位)

* 推导方式如下(以三位格雷码为例):

* 序号 格雷码 格雷码实值 二进制码 二进制实值

* 0 000 0 000 0

* 1 001 1 001 1

* 2 011 3 010 2

* 3 010 2 011 3

* 4 110 6 100 4

* 5 111 7 101 5

* 6 101 5 110 6

* 7 100 4 111 7

* 由上面的数据可看出.如果,按照序号01327645的方式遍历格雷码.其编

* 码实值是按自然数顺序排列.反之,如果按此顺序遍历其二进制实值.则会发

* 现遍历过的数据的个数减一即为二进制码所对应格雷码的实值.再观察序号

* 顺序,我们会发现: 如果把二进制码分半,前半部分从前向后遍历,后半部分

* 从后向前遍历.如果分半部分可再分,则再将其分半.并按照前半部分从前向

* 后遍历(分解),后半部分从后向前遍历的方式遍历(分解).直到不可分.即可

* 实现按序号所描述顺序遍历二进制码.如果,按此顺序遍历二进制码,我们可

* 以很方便地在序列中找到所要的二进制码与其对应的格雷码.本思想可以很

* 方便地用递归实现.这样就实现了二进制到格雷码的转换.同样,格雷码到二

* 进制的转换,也可以用相同的方法推出.为了加快运算,我们跳过不必要的遍

* 历将递归改为递推.这样就实现了格雷码与二进制之间的快速转换.

* 此算法的时间复杂度约为O(n),n为要转换数据的BIT数.

* *****************************************************************

最后

以上就是忐忑航空为你收集整理的格雷码转换成二进制c语言程序,格雷码与二进制的转换程序的全部内容,希望文章能够帮你解决格雷码转换成二进制c语言程序,格雷码与二进制的转换程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部