目录
十进制数 | 4位自然二进制码 | 4位典型格雷码 |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
Bi+1=n时,当作0
这里的??都是二进制表示形式
比如5的格雷码是??=111
class Solution {
public:
vector<int> grayCode(int n) {
vector<int>ret(1<<n);
for(int i=0;i<ret.size();i++){
ret[i]=i^(i>>1);
}
return ret;
}
};