用最快的方法判断一个数是不是2的n次方
例如:
2、4、8、16、32.............等。
同学想到一个很高效的办法:
例如:
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;
}