格雷码
(英文:Gray Code, Grey Code,又称做葛莱码,二进造轮回码)是1880年由法国工程师Jean-Maurice-Emlle Baudot创造的一种编码,是一种绝对编码体例,典型格雷码是一种具有反射特征和轮回特征的单步自补码,它的轮回、单步特征消弭了随机取数时呈现严重误差的可能,它的反射、自补特征使得求反十分便利。
格雷码属于可靠性编码,是一种错误最小化的编码体例,因为,固然天然二进造码能够间接由数/模转换器转换成模仿信号,但在某些情状,例如从十进造的3转换为4时二进造码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有那一缺点,它在相邻位间转换时,只要一位产生改变。
它大大地削减了由一个形态到下一个形态时逻辑的稠浊。因为那种编码相邻的两个码组之间只要一位差别,因而在用于风向的转角位移量-数字量的转换中,当风向的转角位移量发作细小改变(而可能引起数字量发作改变时,格雷码仅改动一位,如许与其它编码同时改动两位或多位的情状比拟更为可靠,即可削减出错的可能性。
但格雷码不是权重码,每一位码没有确定的大小,不克不及间接停止比力大小和算术运算,也不克不及间接转换成液位信号,要颠末一次码变更,酿成天然二进造码,再由上位机读取。解码的办法是用‘0’和摘集来的4位格雷码的更高位(第4位)异或,成果保留到4位,再将异或的值和下一位(第3位)相异或,成果保留到3位,再将相异或的值和下一位(第2位)异或,成果保留到2位,依次异或,曲到更低位,依次异或转换后的值(二进造数)就是格雷码转换后天然码的值。
异或:异或则是按位“异或”,不异为“0”,相异为“1”。
例:
10011000 异或 01100001 成果: 11111001
举例:
假设摘集器器摘到了格雷码:1010
就要将它变成天然二进造:
0 与第四位 1 停止异或成果为 1
上面成果1与第三位0异或成果为 1
上面成果1与第二位1异或成果为 0
上面成果0与第一位0异或成果为 0
因而最末成果为:1100 那就是二进造码即十进造 12
当然人看时只需比照表1一会儿就晓得是12 。