| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1098 人关注过本帖
标题:大家看看格雷码应该怎么样输出
只看楼主 加入收藏
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:5 
大家看看格雷码应该怎么样输出

小弟电子系,今天做数电作业,用到格雷码,突然想起,这个格雷码如果用C语言输出,应该怎么样编程呢?
可能很简单,可是我不会,请求大家帮忙啊!

搜索更多相关主题的帖子: 格雷码 输出 C语言 电子系 作业 
2006-04-02 21:37
Cihor
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-27
收藏
得分:0 

哈哈,不太董格雷码,只是对二进制感兴趣,不知对否

#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);
}


好好学习,天天向上
2006-04-02 22:25
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 

运行了一下,好象不对啊


I am a programmer !
2006-04-03 06:25
Cihor
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-27
收藏
得分:0 

应该是对的吧!输一个十进制如:22输出:00011101

二进制码:00010110 (十进制22)

格雷码: 00011101


好好学习,天天向上
2006-04-03 23:20
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
还是不对啊?

I am a programmer !
2006-04-04 12:59
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 

大家看看这是我自己编写的,当然还没有写完,我只是把四位数的格雷码按顺序转换成十进制后输出,可是不对啊,请大家修改一下.
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]);
}


I am a programmer !
2006-04-08 13:30
快速回复:大家看看格雷码应该怎么样输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012189 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved