二进制码转化为格雷码的法则:从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变(相当于左边是0)
看一下你举得例子0.1111
异或:异或的两个值相同为假,不同为真。
从右至左分别取异或的结果
1XOR1=0
1XOR1=0
1XOR1=0
1XOR0=1
写下来0.1111的格雷码就是0.1000
先写好二进制的数,比如二进制的0110,对应的四位格雷码就是:右数第一位的0和右数第二位的1作异或运算(相同为0,不同为1),这样得到1作为格雷码的第一位,依次类推,最高位的话保持与二进制一样(此处为0),这样就得到格雷码为0101。
格雷码母线位置检测单元包括地址发射单元、天线箱、地址检测单元、格雷码母线及安装辅件等部分。
利用最简单的单匝线圈的感应原理,当天线箱线圈中通进交变电流时,在天线箱四周会产生交变磁场。格雷码母线近似处在一个交变的、均匀分布的磁场中,每对格雷码母线芯线会产生感应电动势。发射单元地址信号通过电磁耦合方式传送到格雷码母线的感应环线上。
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统中,常要求代码按一定顺序变化。
相关内容解释:
典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。
法国电讯工程师波特(Jean-Maurice-Émile Baudot,18450911-19030328)在1880年曾用过的波特码相当于它的一种变形。1941年George Stibitz设计的一种8元二进制机械计数器正好符合格雷码计数器的计数规律。
格雷码的编码规则:
格雷码母线位置检测单元包括地址发射单元、天线箱、地址检测单元、格雷码母线及安装辅件等部分。利用最简单的单匝线圈的感应原理,当天线箱线圈中通进交变电流时,在天线箱四周会产生交变磁场。
格雷码母线近似处在一个交变的、均匀分布的磁场中,每对格雷码母线芯线会产生感应电动势。发射单元地址信号通过电磁耦合方式传送到格雷码母线的感应环线上。
xor运算
的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 xor 19880516 = 20665500,我就把20665500告诉MM。MM再次计算20665500 xor 19880516的值,得到1314520。
B(二进制)-G(格雷码)码
只需将B码后移一位前面加零,
然后将此B码与原B码相异或,
得出的结果就为该B码的Gray码
例如: B3B2B1B0 转化为G码,
就为 B3B2B1B0 (+)【异或】 0B3B2B1 B码
1100110后移一位,最前面加0变为 0110011
然后
1100110
(+) 0110011
-------------------------
0011001
这种方法基于格雷码是反射码的事实,利用递归的如下规则来构造: 1位格雷码有两个码字 (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0 (n+1)位格雷码中的后2n个码字等于n位格雷码的码字,按逆序书写,加前缀1 n+1位格雷码的集合 = n位格雷码集合(顺序)加前缀0 + n位格雷码集合(逆序)加前缀1 2位格雷码3位格雷码4位格雷码4位自然二进制码00
01
11
10 000
001
011
010
110
111
101
100 0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000 0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111 二进制码→格雷码(编码):
此方法从对应的n位二进制码字中直接得到n位格雷码码字,步骤如下: 对n位二进制的码字,从右到左,以0到n-1编号 如果二进制码字的第i位和i+1位相同,则对应的格雷码的第i位为0,否则为1(当i+1=n时,二进制码字的第n位被认为是0,即第n-1位不变) 公式表示:(G:格雷码,B:二进制码) 例如:二进制码0101,为4位数,所以其所转为之格雷码也必为4位数,因此可取转成之二进位码第五位为0,即0 b3 b2 b1 b0。
0 xor 0=0,所以g3=0
0 xor 1=1,所以g2=1
1 xor 0=1,所以g1=1
0 xor 1=1,所以g0=1
因此所转换为之格雷码为0111 格雷码→二进制码(解码):
从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)。依次异或,直到最低位。依次异或转换后的值(二进制数)就是格雷码转换后二进制码的值。
公式表示:(G:格雷码,B:二进制码)
原码:p[n:0];格雷码:c[n:0](n∈N);编码:c=G(p);解码:p=F(c);
书写时按从左向右标号依次减小,即MSB-LSB,编解码也按此顺序进行 举例:
如果采集器器采到了格雷码:1010
就要将它变为自然二进制:
0 与第四位 1 进行异或结果为 1
上面结果1与第三位0异或结果为 1
上面结果1与第二位1异或结果为 0
上面结果0与第一位0异或结果为 0
因此最终结果为:1100 这就是二进制码即十进制 12
当然人看时只需对照表1一下子就知道是12 ...................c[n]=p[n],
解码: 利用卡诺图相邻两格只有一位变化以及卡诺图的变量取值以低阶格雷码的顺序排布的特征,可以递归得到高阶格雷码。由于此方法相对繁琐,使用较少。生成格雷码的步骤如下: 将卡诺图变量分为两组,变量数目相近(最好相等) 以逻辑变量高位在左低位在右建立卡诺图 从卡诺图的左上角以之字形到右上角最后到左下角遍历卡诺图,依次经过格子的变量取值即为典型格雷码的顺序 三位格雷码(三位格雷码由建立在二位基础上) AB╲ C 0 1 00 0→ 1↓ 01 ↓2 ←3 11 6→ 7↓ 10 4 ←5 格雷码次序:000起点→001→011→010→110→111→101→100终点
四位格雷码 AB╲CD 00 01 11 10 00 0→ 1→ 3→ 2↓ 01 ↓4 ←5 ←7 ←6 11 12→ 13→ 15→ 14↓ 10 8 ←9 ←11 ←10 格雷码次序:0000起点→0001→0011→0010→0110→0111→0101→0100→1100→1101→
1111→1110→1010→1011→1001→1000终点 用异或代替加减进行二进制竖式乘除,称为异或乘除,它的特点是无进退位。
如:10101除以11将变成1100余1。
二进制转格雷码:
只要异或乘以二分之三,即二进制的1.1,然后忽略小数部分;也可以理解成异或乘以三(即11),再右移一位。
格雷码转二进制:
异或除以三分之二,即除以1.1,忽略余数;或者左移一位,再异或除以三,忽略余数。