Bit Manipulation-Easy
2020-05-05
231. Power of Two
解法一:位操作
取出位中最右的1bit,如果等于这个数本身,则说明是2的幂
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n == 0) return false;
long val = n;
return (val & -val) == val;
}
};
解法二:位操作
将最右的1置为0并将低位置为1
如果操作后的结果和其自身与,结果为0,说明是2的幂,注意位运算的优先级比判等运算符更低
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n == 0) return false;
long val = n;
return (val & (val - 1)) == 0;
}
};