| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1705 人关注过本帖
标题:[求助]二进制数取出它的奇数位
取消只看楼主 加入收藏
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
 问题点数:0 回复次数:3 
[求助]二进制数取出它的奇数位


写一个函数,对于一个16位的二进制数取出它的奇数位(即从左边起第1,3,5…..15位),

看着下面的代码,想了半天也没想明白,哪位给讲一讲? 多谢了

#include<stdio.h>
int main()
{ unsigned getbits(unsigned);
unsigned int a;
printf("\nInput an octal number:");
scanf("%o",&a);
printf("result:%o\n",getbits(a));
}
unsigned getbits(unsigned value)
{ int i,j,m,n;
unsigned int z,a,q;
z=0;
for(i=1;i<=15;i++)
{ q=1;
for(j=1;j<=(16-i-1)/2;j++)
q=q*2;
a=value>>(16-2);
a=a<<15;
a=a>>15;
z=z+a*q;
}
return(z);
}

[此贴子已经被作者于2006-9-13 11:55:24编辑过]

搜索更多相关主题的帖子: 奇数位 二进制数 unsigned int 
2006-09-13 10:55
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 

怎么没人?


只剩一年了………… 够了!
2006-09-13 12:01
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 
以下是引用ww84020209在2006-9-13 12:38:17的发言:

你要把数取到什么地方啊?

就是返回值呀,给讲讲程序就好


只剩一年了………… 够了!
2006-09-13 17:53
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 
以下是引用ww84020209在2006-9-13 23:30:53的发言:

比如1111 1111 1111 1111 取出奇数位,是返回1010 1010 1010 1010 还是返回 1111 1111

先道歉,我没回答好问题,其实我想要返回第二种
不过第一种,五楼已经给出程序了,也学到东西了,多谢了,
第二种应该怎么写呢?
继续请教,呵呵

[此贴子已经被作者于2006-9-13 23:51:51编辑过]


只剩一年了………… 够了!
2006-09-13 23:51
快速回复:[求助]二进制数取出它的奇数位
数据加载中...
 
   



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

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