格雷码
格雷码是一个二进制数系,其中两个相邻数的二进制位只有一位不同。举个例子,3位二进制数的格雷码序列为
000,001,011,010,110,111,101,100
记G(0)表示第1个格雷码,则有
int G(n)
{
return n^(n>>1);
}
求某个格雷码是第几个
int rev_g(n){
int ans=0;
while(n){
ans^=n;
n/=2;
}
}
格雷码是一个二进制数系,其中两个相邻数的二进制位只有一位不同。举个例子,3位二进制数的格雷码序列为
000,001,011,010,110,111,101,100
记G(0)表示第1个格雷码,则有
int G(n)
{
return n^(n>>1);
}
求某个格雷码是第几个
int rev_g(n){
int ans=0;
while(n){
ans^=n;
n/=2;
}
}