判断一个整数N是否是2的整次方。观察得知,若N是2的整次方,那么N的二进制表示法中一定只有一个1,且在最高位;N&(N-1)运算是将N的最右边一个1置零,该计算后若N为0,那么N即为2的整次方。
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
int flag=n&(n-1);
if(flag)
return false;
else
return true;
}
};