您的位置:首页 > 其它

用最快的方法判断一个数是不是2的n次方

2013-03-17 10:17 246 查看
用最快的方法判断一个数是不是2的n次方

例如:

2、4、8、16、32.............等。

本人想到一个最笨的办法:

boolean check(int a) {
boolean flag = false;
int temp = 2;
while (true) {
temp = temp * 2;
if (temp == a ) {
flag = true;
break;
}else if(temp > a) {
break;
}
}
return flag;
}


同学想到一个很高效的办法:

boolean check(int a) {
return (a&(a-1)) == 0?true:false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: