一、知识点补充
(1)&(与运算符):与运算是指两个数都为1的时候,结果才为1,两个结果都为0的时候,结果为0,一个1一个0,结果就是0,如下图:
(2)2的幂比较特殊,转为二进制只有1位为1,那么-1后进行与运算,结果肯定为0,如下图:
(3)如果n是2的幂,那肯定是4的幂。
(4)用取余的方法,区别出是4的幂,但不是2的幂。如果n是4的幂的话,n%3=1,如果n是2的幂的话,n%3=2。
二、代码实现
function isPowFour(n){
if(n>0&&(n&n-1)==0&&n%3==1){
return true;
}else{
return false;
}
}
console.log(isPowFour(16));
结果: