二进制和格雷码转换关系

  • 格式:doc
  • 大小:32.50 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二进制和格雷码转换

(2012-08-01 11:45:40)

转载▼

分类:基础算法

标签:

杂谈

==================================================

最佳答案:

十进制586 =二进制1001001010 =格雷码1101101111。

二进制码----> 格雷码(编码):

从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变(相当于左边是0)。格雷码的是特点是:

相邻两数的格雷码,仅仅有一位二进制发生变化。

而且在其范围内的最小值和最大值,也仅仅有一位二进制发生变化。

例如下面两数:

最小:二进制0000=格雷码0000

最大:二进制1111=格雷码1000

看到了吧,0000 和1000,仅仅有一位数发生变化。

-------

如果在变换的过程中,先把十进制转换成BCD码,这就失去了格雷码的特点。

因为在BCD码中:

最小:二进制0000=格雷码0000

最大:二进制1001=格雷码1101

可以看出,它们之间有三位发生变化。

通过BCD码来变换格雷码,思路不对。变换出来的,并不是原数的格雷码。

==================================================

回答者:做而论道| 十五级采纳率:43% 名人

回答时间:2011-12-13 09:38

原题网址:/question/353979304.html

==================================================

后记:自然二进制数与格雷码的互换公式与电路

自然二进制数转换到格雷码

------------

设有N 位二进制数B(i),其中0 <= i <= N - 1;它可以变换成为同样位数的格雷码G(i)。

二进制数与格雷码的转换公式如下:

G(i) = B(i+1) XOR B(i) ; 0 <= i < N - 1

G(i) = B(i) ; i = N - 1

如果是通过编程计算进行变换,就需要使用这个公式逐位的计算;

如果是使用硬件电路进行变换,就可以使用做而论道前面在回答问题时给出的电路。

格雷码转换到自然二进制数

------------

设有N 位格雷码G(i),把它转换成自然二进制数的算法如下。

自然二进制码的最高位等于雷码的最高位;

自然二进制码的次高位为最高位自然二进制码与次高位格雷码相异或;

自然二进制码的其余各位与次高位自然二进制码的求法相类似。

转换公式如下:

B(i) = G(i) ; i = N - 1

B(i) = B(i+1) XOR G(i) ; 0 <= i < N - 1