格雷码

✍ dations ◷ 2025-12-03 11:53:48 #数字电子,数字电路

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

格雷码(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的玩具也是运用相同的数学模式。

相关

  • 乔治·基斯佳科夫斯基乔治·基斯佳科夫斯基(英语:George Kistiakowsky,1900年11月18日-1982年12月7日)是哈佛大学的物理化学教授,乌克兰裔,曾参与过曼哈顿计划,在国防部科研委员会中负责爆炸物的相关研究
  • 米哈伊尔·萨多夫斯基米哈伊尔·亚历山德罗维奇·萨多夫斯基(俄语:Михаил Александрович Садовский,1904年-1994年)是苏联地球物理学家,爆炸物理学专家,苏联原子弹计划参与
  • 1773年兹姆里·利姆授职仪式壁画,从前1775年到前1760年创作。现在巴黎卢浮宫博物馆。
  • 上杉朝定 (扇谷上杉家)上杉朝定(うえすぎ ともさだ 大永5年(1525年)- 天文15年4月20日(1546年5月19日))为扇谷上杉家事实上的最末一任家督。大永5年(1525年)出生,父亲是上杉朝兴。天文6年(1537年)4月父亲去世
  • 克里斯托弗·C·威尔科克克里斯托弗·C·威尔科克(Christopher C. Wilcock,1946年-)是专业于猪笼草属食虫植物的美国分类学家。威尔科克与J·H·亚当(J. H. Adam)合作描述了几个猪笼草类群,其中物种包括法
  • 高氯酸铵 高氯酸铵,或称过氯酸铵,是一种白色的晶体,分子式为 NH4ClO4,有潮解性。它通常可以用来制造炸药、烟火,由于分解产生大量气体,过去也用作火箭燃料,并用作分析试剂。高氯酸铵常见有
  • 雷管雷管,是一种用来引爆炸药的装置。工业和军用炸药一般较为稳定,用明火无法引爆。必须使用其他炸药引爆,例如雷管。19世纪,瑞典化学家阿佛烈·诺贝尔(Alfred B. Nobel)发现硅藻土吸
  • 伯彦讷谟祜伯彦讷谟祜(蒙古语:Буяннэмэх;19世纪?-1891年),博尔济吉特氏,清朝蒙古王公,内蒙古科尔沁左翼后旗人,僧格林沁之子,继任扎萨克博多勒噶台亲王,谥慎。早年担任乾清门三等侍卫。
  • ISO 7001ISO 7001 (公共信息符号) 是由国际标准化组织(ISO)发布的标准,其定义了一组用于公共信息的象形标志和符号。最新版本 ISO 7001:2007 于2007年11月发布。该标准是在多个国家和不
  • BTR-80BTR-80是苏联设计的装甲运兵车,在1980年初期,考量到阿富汗作战上的问题,苏联开始进一步发展装甲车,于1986年服役BTR-80开始取代BTR-60、BTR-70。苏联基于BTR-70改良设计了BTR-80