百度Gray编码,发现其规则如下:
1)1位格雷码有两个码字
2)(n+1)位格雷码中的前2^n个码字等于n位格雷码的码字,按顺序书写,加前缀0
3)(n+1)位格雷码中的后2^n个码字等于n位格雷码的码字,按逆序书写,加前缀1
4)n+1位格雷码的集合 = n位格雷码集合(顺序)加前缀0 + n位格雷码集合(逆序)加前缀1
其规律如下所示:
而Gary填充曲线是在Gray编码的基础发展的。构造Gray曲线的过程:1)先将X,Y轴转换成二进制值,并获得其对应的Gray编码;2)将X与Y的Gray编码两两交叉,形成新的二进制串;3)将该二进制字符串转换成其对应的Gray编码。就形成对应的Gray曲线。形成的的填充曲线如图所示:
其中步骤1,可以使用映射函数:graycode=number#(number/2),有以下规律:
假设有4位二进制码abcd和格雷码efgh
因为二进制码abcd和Gray码之间有如下结论:
e = a
f = a ^ b
g = b ^ c
h = c ^ d
其中二进制字符串转换成Gray的伪代码如下:从格雷码到序号的映射算法[4] :
Begin
number=0;
while (graycode>0) do
number=number#graycode;
graycode=graycode /2;
End.