Gray Code

Gray Code的性质:相邻连续的两个二进制串,有且只有一位不同。

Gray Code与二进制码的转换

将连续的十进制数转化为对应的Gray Code,规律是:Gray Code=i^(i>>1),i是十进制数对应的二进制码

例如:2位Gray Code码与二进制码的对应关系如下:

十进制                  二进制码                            格雷码

0                              00                                        00

1                              01                                        01

2                              10                                        11

3                              11                                        10

public ArrayList<Integer> grayCode(int n) {
        int size =1;
        for(int i =0;i<n;i++){
            size = size * 2;
        }
        ArrayList<Integer> lists = new ArrayList<Integer>();
        for(int i =0;i<size;i++){
            lists.add(i^(i>>1));
        }
        return lists;
    }





你可能感兴趣的:(Gray Code)