描述:
Given an integer, write a function to determine if it is a power of two.
分析:
判断一个数是否是2的幂,判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0.
解决方案1:
(n&(n-1))==0
class Solution {
public:
bool isPowerOfTwo(int n) {
return (n > 0 && (n&(n-1))==0);
}
};
解决方案2:
所有位中只有1个1
class Solution {
public:
bool isPowerOfTwo(int n) {
int count = 0;
while (n > 0)
{
count+=(n&0x01);
n>>=1;
}
return count==1;
}
};