格雷码转二进制(格雷码如何转换成二进制)
本文目录
格雷码如何转换成二进制
最左边一位依然不变依次异或,直到最低位。依次异或转换后的值就是格雷码转换 后的二进制值。
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。
典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。
法国电讯工程师波特(Jean-Maurice-Émile Baudot,18450911-19030328)在1880年曾用过的波特码相当于它的一种变形。1941年George Stibitz设计的一种8元二进制机械计数器正好符合格雷码计数器的计数规律。
二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。
数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。每个数字称为一个比特(Bit,Binary digit的缩写)。
格雷码的转换方法
这种方法基于格雷码是反射码的事实,利用递归的如下规则来构造: 1位格雷码有两个码字 (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0 (n+1)位格雷码中的后2n个码字等于n位格雷码的码字,按逆序书写,加前缀1 n+1位格雷码的集合 = n位格雷码集合(顺序)加前缀0 + n位格雷码集合(逆序)加前缀1 2位格雷码3位格雷码4位格雷码4位自然二进制码00011110 000001011010110111101100 0000000100110010011001110101010011001101111111101010101110011000 0000000100100011010001010110011110001001101010111100110111101111 二进制码→格雷码(编码):此方法从对应的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=00 xor 1=1,所以g2=11 xor 0=1,所以g1=10 xor 1=1,所以g0=1因此所转换为之格雷码为0111 格雷码→二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)。依次异或,直到最低位。依次异或转换后的值(二进制数)就是格雷码转换后二进制码的值。公式表示:(G:格雷码,B:二进制码)原码:p,解码: 利用卡诺图相邻两格只有一位变化以及卡诺图的变量取值以低阶格雷码的顺序排布的特征,可以递归得到高阶格雷码。由于此方法相对繁琐,使用较少。生成格雷码的步骤如下: 将卡诺图变量分为两组,变量数目相近(最好相等) 以逻辑变量高位在左低位在右建立卡诺图 从卡诺图的左上角以之字形到右上角最后到左下角遍历卡诺图,依次经过格子的变量取值即为典型格雷码的顺序 三位格雷码(三位格雷码由建立在二位基础上) 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,忽略余数;或者左移一位,再异或除以三,忽略余数。
格雷码编码规则是什么
写好二进制的数,比如二进制的0110,对应的四位格雷码就是:右数第一位的0和右数第二位的1作异或运算(相同为0,不同为1),这样得到1作为格雷码的第一位,依次类推,最高位的话保持与二进制一样(此处为0),这样就得到格雷码为0101。
格雷码母线位置检测单元包括地址发射单元、天线箱、地址检测单元、格雷码母线及安装辅件等部分。
格雷码特点
格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化,而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
c语言实现格雷码转换为二进制
把十进制小数乘以2,取其积的整数部分作对应二进制小数的最高位系数k -1 再取积的纯小数部分乘以2,新得积的整数部分又作下一位的系数k -2 ,再取其积的纯小数部分继续乘2,…,直到乘积小数部分为0时停止,这时乘积的整数部分是二进制数最低位系数,每次乘积得到的整数序列就是所求的二进制小数。这种方法每次乘以基数取其整数作系数。所以叫乘基取整法。需要指出的是并不是所有十进制小数都能转换成有限位的二进制小数并出现乘积的小数部分0的情况,有时整个换算过程无限进行下去。此时可以根据要求并考虑计算机字长,取定长度的位数后四舍五入这时得到的二进制数是原十进制数的近似值。
更多文章:

sample软件(origin9.0软件samples 怎么用)
2025年2月21日 00:20

postgresql(PostgreSQL从菜鸟到专家 什么是PostgreSQL数据库)
2025年3月21日 23:40

rs触发器和sr触发器的区别(rs触发器中的r和s分别代表什么意思呢)
2025年3月13日 01:20

erp系统可以自学吗(ERP系统如何快速入门需要培训哪些知识)
2025年3月10日 00:00

excel中rank函数怎么用(EXCEL中的RANK怎么用)
2025年4月5日 00:30

soap病历什么意思(soap病例汇报可以作为一种形成性评价方式,最重要的原因)
2025年3月25日 15:30