百度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.