|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求一个笔试题答案
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1034
人关注过本帖,
1
人收藏
标题:
求一个笔试题答案
只看楼主
加入收藏
凤凤
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-3-24
结帖率:
0
楼主
收藏
(1)
已结贴
√
问题点数:20 回复次数:11
求一个笔试题答案
如何求一个数字是不是2的幂
不能用循环
搜索更多相关主题的帖子:
笔试
2010-03-25 11:55
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
2
楼
收藏
得分:2
printf("%d : %s\n", i, ((i & (i - 1)) ?"false":"true"); false : 为不是; true : 为是
2010-03-25 13:09
举报帖子
使用道具
赠送鲜花
okgays
等 级:
论坛游民
帖 子:15
专家分:26
注 册:2010-3-23
第
3
楼
收藏
得分:2
楼上的方法不错!
2010-03-25 13:24
举报帖子
使用道具
赠送鲜花
mywaylgh
来 自:厨房
等 级:
蝙蝠侠
威 望:
5
帖 子:188
专家分:729
注 册:2010-3-10
第
4
楼
收藏
得分:2
以下是引用
ldg628
在2010-3-25 13:09:47的发言:
printf("%d : %s\n", i, ((i & (i - 1)) ?"false":"true")
)
; false : 为不是; true : 为是
这是我这几天在此论坛见过的最牛最高效的代码了
人生就像茶几 上面放着许多杯具
人生也像厨房 里面总有一些洗具
2010-03-25 14:23
举报帖子
使用道具
赠送鲜花
mikelr
等 级:
论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
第
5
楼
收藏
得分:2
printf("%d : %s\n", i, ((i & (i - 1)) ?"false":"true"); false : 为不是; true : 为是
看不明白,能说说吗??
(i & (i - 1)) 能说明一下吗?
2010-03-25 14:30
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
6
楼
收藏
得分:0
如果i是2的幂的话,它的二进制形式必然是 10...0(...代表n个0) 则i-1的二进制形式必然为 01...1,则 i & (i-1)肯定等于 0;
如果i不是2的幂,它的二进制形式肯定不是 10...0, 至少有这个数的二进制形式里面有两个1(除了0),i-1时最低位的1借位给前面的了,肯定不会影响到高位的1, i与(i-1)的高位相与时,必然是等于1的,所以i&(i-1)肯定不为0,为真
2010-03-25 14:42
举报帖子
使用道具
赠送鲜花
mywaylgh
来 自:厨房
等 级:
蝙蝠侠
威 望:
5
帖 子:188
专家分:729
注 册:2010-3-10
第
7
楼
收藏
得分:0
ldg628 兄 估计太忙
那我就来替他说明下:
&是位运算符(位运算与)
某个数是2的幂那么这个数用二进制表示一定是:
最高位为1
其它位全部为0
那么这个数减1,用二进制表示是:
除对应最高位为0外,
其余全为1
所以 i & (i-1) ==0 是 i是否为2的幂的充要条件
如果不知道位运算是什么,请google....
人生就像茶几 上面放着许多杯具
人生也像厨房 里面总有一些洗具
2010-03-25 14:44
举报帖子
使用道具
赠送鲜花
mywaylgh
来 自:厨房
等 级:
蝙蝠侠
威 望:
5
帖 子:188
专家分:729
注 册:2010-3-10
第
8
楼
收藏
得分:0
晕,这么快就回复了
人生就像茶几 上面放着许多杯具
人生也像厨房 里面总有一些洗具
2010-03-25 14:44
举报帖子
使用道具
赠送鲜花
mikelr
等 级:
论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
第
9
楼
收藏
得分:0
恩。谢谢ldg628高手
2010-03-25 14:47
举报帖子
使用道具
赠送鲜花
longlong89
来 自:广州
等 级:
小飞侠
威 望:
6
帖 子:1043
专家分:2754
注 册:2009-8-18
第
10
楼
收藏
得分:2
只好接分了.
想象力征服世界
2010-03-28 21:22
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
求一个笔试题答案
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.027890 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved