- 算法
位运算 - 核心思想
两种思路
①一种是直接左移,这里需要注意即便使用long型结构保存数据,1的左移32位仍然是负数,因为1是32位保存的数据.
②第二种方法为考虑2的倍数的特点,必定是只存在一个2,所以令n与(n-1)进行逻辑与即可。 - 代码
class Solution {
public boolean isPowerOfTwo(int n) {
int x = 0;
long temp = 0;
while(temp <= n){
temp = (long)1 << x++;
if(temp == n) return true;
}
return false;
}
}