题:
Given an integer, write a function to determine if it is a power of two.
也就是判断一个数是不是2的幂次方
solution:
这道题解法很多,最简单的就是循环。
已知2的幂次方的二进制中有且只有一位为1。
我们向右移动,直到当前位为1。再在当前状态右移一位,如果是剩余位都是零那么就是2的幂次方。
class Solution {
public:
bool isPowerOfTwo(int n) {
int i = 0;
int m = 1;
while(n>>i)
{
if((n>>i)&1==1){
m=n>>(i+1);
break;
};
i++;
}
if(m==0)
return true;
return false;
}
};