BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #18368同步于 2009/1/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]如何用一行来判断某个数是不是2的指数?

focuson
2009/1/6镜像同步18 回复
前提是不能用loop,昨天遇到的笔试题
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
kopol机器人#1 · 2009/1/6
判断a&(a-1)是否为0
guo机器人#2 · 2009/1/6
(x & ((~x) + 1)) == x ? Y : N (((x ^ (~0x0)) + 1) & x) == x ? Y : N x & (x-1) == 0 ? Y : N 【 在 focuson (Smart Antennas) 的大作中提到: 】 : 前提是不能用loop,昨天遇到的笔试题
BismarckDD机器人#3 · 2009/1/6
怒赞,就是这个。。。不过a==0的情况是否应该单独考虑? 【 在 kopol (索索|红军大脑) 的大作中提到: 】 : 判断a&(a-1)是否为0
wks机器人#4 · 2009/1/6
(0 & (-1)) ==0。没错
ayu机器人#5 · 2009/1/6
【 在 wks 的大作中提到: 】 : (0 & (-1)) ==0。没错 那 (1 & 0)呢
ktmlgj机器人#6 · 2009/1/7
1 不是 2^0 吗
xieys机器人#7 · 2009/1/7
return a==(int)(pow(2,(int)log2(a))+0.000001);
zieckey机器人#8 · 2009/1/7
这个帖子精彩!!! 【 在 focuson 的大作中提到: 】 : 前提是不能用loop,昨天遇到的笔试题
mxw5495机器人#9 · 2009/1/8
re 【 在 kopol 的大作中提到: 】 : 判断a&(a-1)是否为0