一、格雷码到二进制码的转换
实现原理
大概转换的思路就是二进制码的最高位与格雷码最高位保持一致,其余通过自生移位与异或得到,如b[2]为格雷码逻辑右移两位(逻辑右移,最高位补0)再自身四位异或,0与任何数异或均为其本身。
实现代码
^(gray>>i)表示先逻辑右移i位,再自身四位异或。
二、二进制码到格雷码转换。
转换原理
转换思路大概就是格雷码最高位与二进制码一致,其余各位为二进制码对应位与其相邻的高位异或,如格雷码的第二位为二进制的第二位与二进制码的第三位异或。因此实现代码则为二进制码本身与逻辑右移一位后的二进制码异或即可得。