相关题目:
4的幂
思路:4的幂是诸如01,100,10000,1000000的2进制。满足4的幂既要满足2的偶次方幂。所以游戏如下特点:
- n&(n-1):判断n是否为2的幂(即1,10,100,1000...等形式)
- num&0xaaaaaaaa(1010101010101010):判断n是否满足是2的奇次方幂
所以判断是否为4的幂(2的偶次方幂):n>0&&(n&(n-1))==0&&(n&0xaaaaaaaa)==0
class Solution {
public boolean isPowerOfFour(int num) {
if(num==1){
return true;
}
return num>0 &&((num & (num-1)) == 0)&&((num & 0xaaaaaaaa)==0); //见题解
/**
x*x-1:判断是否为2的幂
(num & 0xaaaaaaaa):判断是否为0101010101...的形式(2的奇数次幂)
4的幂是2的偶数次幂
*/
}
}
于2020/10/16开始编辑,持续更新