概述
/* 格雷码与二进制的转换程序
* 本程序采用递推的方法进行推导,可以转换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语言程序,格雷码与二进制的转换程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复