小弟电子系,今天做数电作业,用到格雷码,突然想起,这个格雷码如果用C语言输出,应该怎么样编程呢?
可能很简单,可是我不会,请求大家帮忙啊!
哈哈,不太董格雷码,只是对二进制感兴趣,不知对否
#define N 16
char *fun(char *str,unsigned x)
{ unsigned i;
for(i=0;i<N;i++)
str[i]=(i==0?x>>N-1&1:x>>N-i&1^x>>N-(i+1)&1)+0x30;
str[N]='\0';
return str;
}
int main()
{ int n;char str[N+1];
scanf("%d",&n);
fun(str,n);
printf("%s\n",str);
}