格雷码

✍ dations ◷ 2025-12-04 13:49:35 #数字电子,数字电路

格雷码(循环二进制单位距离码)是任意两个相邻数的代码只有一位二进制数不同的编码,它与奇偶校验码同属可靠性编码。

格雷码(Gray code)是由贝尔实验室的Frank Gray在1940年提出,用于在PCM(脉冲编码调变)方法传送讯号时防止出错,并于1953年三月十七日取得美国专利。格雷码是一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一的。

传统的二进制系统例如数字3的表示法为011,要切换为邻近的数字4,也就是100时,装置中的三个位元都得要转换,因此于未完全转换的过程时装置会经历短暂的,010,001,101,110,111等其中数种状态,也就是代表着2、1、5、6、7,因此此种数字编码方法于邻近数字转换时有比较大的误差可能范围。格雷码的发明即是用来将误差之可能性缩减至最小,编码的方式定义为每个邻近数字都只相差一个位元,因此也称为最小差异码,可以使装置做数字步进时只更动最少的位元数以提高稳定性。数字0~7的编码比较如下:

十进制 格雷码 二进制

0     000    0001     001    0012     011    0103     010    0114     110    1005     111    1016     101    1107     100    111

直接排列

以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反复,即可排列出n个位元的格雷码。

n位元的格雷码可以从n-1位元的格雷码以上下镜射后加上新位元的方式快速的得到,如右图所示一般。

(假设以二进制为0的值做为格雷码的0)
G:格雷码 B:二进制码 n:正在计算的位
根据格雷码的定义可得:
G(n) = B(n+1) XOR B(n)

G(n) = B(n+1) + B(n)
自低位至高位运算即可,无需考虑进位,例略。


00011110
3位元格雷码
000001011010110111101100 
4位元格雷码
0000000100110010011001110101010011001101111111101010101110011000
4位元2进制原始码
0000000100100011010001010110011110001001101010111100110111101111

格雷码转二进制数

由于G(n) = B(n+1) + B(n)
故而B(n) = -B(n+1)+ G(n)
自高位至低位运算即可,无需考虑借位。

例:格雷码0111,为4位数,故设二进制数自第5位至第1位分别为:0 b3 b2 b1 b0。
b3= 0-0 =0
b2=b3-1=0-1=1
b1=b2-1=1-1=0
b0=b1-1=0-1=1
因此所转换为之二进制码为0101

中国的古老益智玩具九连环有着和格雷码完全相同的数学模式,外国一款名为spin out的玩具也是运用相同的数学模式。

相关

  • 赫氏空隙赫氏空隙(Hertzsprung gap)是赫罗图上恒星团的一种特色。它是依据埃希纳·赫茨普龙的发现命名的,他首先注意到在赫罗图上光谱类型A5到G0和绝对星等+1到-3的这一块区域(也就是在
  • 张结宝张结宝,(1899年-1928年)又名张占彪,坊间戏称其为张结巴。白族,云南兰坪人。民国时期活跃在滇西北杀富济贫的著名土匪头子。颇有争议的传奇人物。张结宝1899年生于兰坪一个贫穷的家
  • 张树新张树新(1963年7月-),辽宁抚顺人,瀛海威公司创办者。1986年毕业于中国科学技术大学化学系,在《中国科学报》任职记者。1989年,张树新进入中国科学院高新技术企业局从事企业策略研究,1
  • 汤姆·罗伯·史密斯汤姆·罗伯·史密斯(1979年-)是一位英国作家。史密斯在伦敦出生和长大,父亲是英国人,母亲是瑞典人。史密斯就读于剑桥大学圣约翰学院,2001年他毕业后,他获得了获得了奖学金到意大利
  • 程灵洗程灵洗,字玄涤,新安海宁人。南陈人。自小能步行二百余里,又善泳,从师于韩拱月。侯景之乱爆发,程灵洗据守黟歙,以抗侯景,当时只有歙州得以保全。太守萧隐投奔灵洗。后历任云麾将军、
  • 主显节前夕主显节前夕,又称第十二夜,是基督教节日的一个分支,指1月5日。那一天晚上是十二天圣诞季的最后一夜,之后就是圣诞节后第十二日(1月6日)的主显节。主显节纪念的是东方三博士对耶稣基
  • 纯正希腊语纯正希腊语(希腊语:Καθαρεύουσα)是一种自19世纪兴起的现代希腊语变体。纯正希腊语作为古典希腊语以及通俗希腊语的折衷方案,至19世纪到1976年普遍用于文雅及官方场合
  • 韩玺韩玺(?-17世纪),字献之,莱州府掖县人,明朝、南明军事人物。韩玺是诸生出身,懂得兵法,李九成围城时曾提供赋银、协助守城;又跟随杨御蕃解除登州敌军包围,以守备屯驻德州、宝坻,剿灭岮㞦、
  • 秀明大学秀明大学(秀明大学,Shūmei Daigaku)是日本千叶县八千代市的一所私立大学,其总部坐落于东京中野区,该校前身系1988年创立的八千代国际大学。宫本泰介,千叶县习志野市第6任市长。坐
  • 高桥繁浩高桥繁浩(日语:高橋 繁浩/たかはし しげひろ ,1961年6月15日-),日本前男子游泳运动员。他曾获得1978年亚洲运动会游泳比赛男子100米蛙泳和200米蛙泳金牌,还参加了1984年夏季奥运会