LeetCode Power of Two
Given an integer, write a function to determine if it is a power of two.
这是计算数中1的个数的简版,如果是2的幂的话,二进制中应该只有一个bit为1,即1的count=1。所以这里就不需要用循环了,一次判断即可。但是入参是有符号数,按照题意INT_MIN虽然也只有一个bit为1但是也不算是power of two.
class Solution {
public:
bool isPowerOfTwo(int n) {
if (n <= 0) {
return false;
}
return !(n & (n-1));
}
};