//第一种: 不断除以2,看最后结果是否等于1
function check(i){
if(i%2==1){
console.log("false");
}else{
i = i/2;
if(i!=1){
check(i);
}else{
console.log("true");
}
}
}
check(8);
//第二种: 转换成2进制数,如果是2的n次方,则只会出现1次字符串“1”
function check(num){
let result = num.toString(2);
result = result.split("1");
if(result.length == 2){
console.log("true");
}else{
console.log("false");
}
}
check(1023);
//第三种:位运算符&判断,如果是2的n次方,则(i&(i-1))一定为0
function check(i) {
console.log((i & (i - 1)) == 0);
}
check(8);