「通信原理」格雷码的生成与破译
格雷码,gray code,相邻两数之间只有一个bit发生了改变,因此相比于自然编码的二进制系统,格雷编码的更不容易出错。使用卡诺图化简布尔代数式的时候,也会用到格雷码。本文将介绍三种格雷码的生成与破译方法,即格雷码和自然编码的相互转换。格雷码的顺序不是唯一的。
1、直接排列
根据定义直接排列,适用于十分简单的情形。
十进制 |
二进制(自然编码) |
格雷码 |
0 |
00 |
00 |
1 |
01 |
01 |
2 |
10 |
11 |
3 |
11 |
10 |
2、镜射法
n位的格雷码可以直接由n-1位的格雷码“镜面反射”之后,在前面添加0或者1直接得到。其过程如下图所示:
第二列的[0 1 1 0]即是1位格雷码“镜面反射”得到的,然后在前面添加[0 0 1 1]则得到2位的格雷码[00, 01, 11, 10]。同理可得3位的格雷码。
3、公式法:
(1)二进制数转格雷码
前面两种方法都是适用于位元数较小的二进制数,当n很大时(一张纸写不下的时候),就不适合列举出所有的对应关系,再去编解码了。
符号规定:G:格雷码,B:二进制码,k:正在计算的位
生成公式:G(k) = B(k+1) ⊕ B(k)或者G(k) = B(k+1) +B(k)
文字解释:第k位的格雷码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)