大家看看格雷码应该怎么样输出
小弟电子系,今天做数电作业,用到格雷码,突然想起,这个格雷码如果用C语言输出,应该怎么样编程呢?
可能很简单,可是我不会,请求大家帮忙啊!
大家看看这是我自己编写的,当然还没有写完,我只是把四位数的格雷码按顺序转换成十进制后输出,可是不对啊,请大家修改一下.
void main()
{ int a[16];
int i;
for(i=1,a[0]=0;i<=15;i++)
{ if(i%8==0)
a[i]=a[i-1]+8;
else if((i%4==0)&&(a[i-1]&4==0))
a[i]=a[i-1]+4;
else if((i%4==0)&&(a[i-1]&4!=0))
a[i]=a[i-1]-4;
else if((i%2==0)&&(a[i-1]&2==0))
a[i]=a[i-1]+2;
else if((i%2==0)&&(a[i-1]&2!=0))
a[i]=a[i-1]-2;
else if(((i+1)%2==0)&&(a[i-1]&1==0))
a[i]=a[i-1]+1;
else if(((i+1)%2==0)&&(a[i-1]&1==1))
a[i]=a[i-1]-1;
}
for(i=0;i<16;i++)
printf("%4d\n",a[i]);
}