本文主要是介绍自然二进制码与格雷码相互转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自然二进制码与格雷码相互转换
一、格雷码简介
格雷码是由弗兰克·格雷于1953年发明,其主要特点是相邻编码值中间只有一个比特发生改变,又被称为循环码。
格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
二、自然二进制码转换为格雷码
自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,格雷码其余各位依次求之。
原理:
若二进制码表示为: B[N-1]B[N-2]...B[2]B[1]B[0],
则二进制格雷码表示为: G[N-1]G[N-2]...G[2]G[1]G[0]。
其中最高位保留: G[N-1] = B[N-1],
其他各位: G[i] = B[i+1] xor B[i]. (i = 0, 1, 2, ..., n-2)。
图示如下:
代码如下:
这篇关于自然二进制码与格雷码相互转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!