格雷码,格雷码是什么?
1、格雷码是什么?
格雷码,是计算机中的一种编码。主要用于“计算机控制”方面。
格雷码的特点是:
--任意两个相邻数字的码组(包括首尾码组),只有一位二进制不同。
因为它有这种特点,当数字递增或递减时,码组的变化,每次就只有一位二进制有变化。
这就可以避免变化时间参差不齐而带来的干扰。
格雷码的缺点,就是不够直观,不能直接看出它所代表的数值。
其实,这也不算什么缺点,因为,格雷码它本来就不是给人看的。
具有这种特点的码组,有多种多样。
下面列出几种:
实际上,还可以列出很多。
其中,通过“异或”算出来的格雷码,是最简单的。
很多初学者,只是知道这种格雷码。
其它格雷码是怎么编的?
也不难,大家慢慢琢磨吧。
2、什么是“格雷码”?
格雷码就是一种可靠性编码。在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码。在数字系统中,常要求代码按一定顺序变化。
例如,按自然数递增技术,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对同时发生,则计数中可能出现短暂的其他代码(1100、1111等)。在特定情况下可能导致电路状态错误或输入错误。使用格雷码可以避免这种错误。
:
格雷码发展历史:
格雷码(Gray Code)因Frank Gray 1947年申请、1953年获得批准的专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换中。法国工程师Jean-Maurice-Émlle Baudot在1880年曾用过的波特码是典型格雷码的一种变形。1941年George Stibitz设计过一种8元格雷码计数器。
格雷码的优点:
1、格雷码是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。
格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
由于这种编码相邻的两个码组之间只有一位不同,因而在用于风向的转角位移量-数字量的转换中,当风向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
2、格雷码是一种变权码,每一位码没有固定的大小,很难直接进行比较大小和算术运算,也不能直接转换成液位信号,要经过一次码变换,变成自然二进制码,再由上位机读取。
解码的方法是用‘0’和采集来的4位格雷码的最高位(第4位)异或,结果保留到4位,再将异或的值和下一位(第3位)相异或,结果保留到3位,再将相异或的值和下一位(第2位)异或,结果保留到2位,依次异或,直到最低位,依次异或转换后的值(二进制数)就是格雷码转换后自然码的值.
:百度百科-格雷码
3、什么是格雷码?
8421 码中的 3 ~ 12,即为 0~9 的余 3 码:0011~1100。
8421 码的 0 ~ 15:0000~1111,按照异或算法,
可以变换成格雷码:0000~1000。
在格雷码中,相邻(包括首尾)两个代码之间只有一位不同。
格雷码中的 3 ~ 12,即为 0~9 的余 3 循环码:0010~1010。
余 3 码循环码,也是相邻(包括首尾)两个代码之间只有一位不同。
它们的特点与关系,可以参考下图:
4、格雷码的特点是什么?为什么说它是可靠性代码?
格雷码(Gray code)是一种准权码,设格雷码最低位为n=1,则格雷码的权的绝对值为(2^n)-1,其符号从左到右正负交替。典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式。
1、格雷码的特点是任意两组相邻之间只有一位不同,其余各位都相同,而且0和最大数(2的N次方减一)对应的两组格雷码之间也只有一位不同。
2、格雷码是一种循环码,它的特性使它在形成和传输过程中引起的误差较小。如计数电路按格雷码计数时,电路每次状态更新只有一位代码变化,从而减少了计数错误。
3、普通二进制码与格雷码相互转换关系为:
(1)二进制码转换成格雷码
从最右边第一位开始,依次将每一位与左邻一位异或(XOR),作为对应格雷码该位的值,最左边一位不变。
(2)格雷码转换成二进制码
从左边第二位起,将每位与左边一位解码后的值异或(XOR),作为该位解码后的值(最左边一位依然不变)。
请添加微信号咨询:19071507959