public static bool IsPowerOfTwo(int number)
{
// 判断是否为负数或零
if (number <= 0)
return false;
// 使用位运算判断是否只有一位是1
return (number & (number - 1)) == 0;
}
private static boolean isPowerOfTwo(int n) {
return (n > 0) && ((n & (n - 1)) == 0);
}
如果计算这个数是2的N次方得出返回N这个值
public static int getExpontOfTwo(int number)
{
if(number <=0 || (number & (number -1)) != 0){
return -1;
}
int expont = 0;
while(number != 1)
{
number >>= 1;
expont++;
}
return expont;
}
}