要求效率尽可能的高,判断一个数是否是2的n次方
这道题是非常"典型"的面试题,相信大家都会
2的n次方:
首先可以直到2的n次方的2进制中只有一个1,拿这个数字减去1是将这个数其他位置变成1,而原本是1的那一位为0,这样两个数作按位与就会等于0
public static boolean judge(int n){
if(n==0){
return false;
}
if((n & (n-1)) == 0){
return true;
}
return false;
}