思路
1 判断一个数 是否为2 的幂可以考虑 n&(n-1)或者n^(n-1)
2 如果是 2 的幂则与操作后 结果为0 ,异或后结果为俩个数的和
代码
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
int tmp=n^(n-1);
return tmp==n+n-1;
}
代码2 :
bool isPowerOfTwo(int n) {
return n>0&&!(n&(n-1));
}