pwstrick / daily

一份搜集的前端面试题目清单、面试相关以及各类学习的资料(不局限于前端)
2.39k stars 242 forks source link

判断一个数是否为 2 的 n 次方 #994

Open pwstrick opened 4 years ago

pwstrick commented 4 years ago

移位

function isPower1(n) {
  if (n < 1)
    return false;
  var i = 1;
  while (i <= n) {
    if (i == n)
      return true;
    i <<= 1;
  }
  return false;
}

num&(num-1)

function isPower2(n) {
  if (n < 1)
    return false;
  var m = n & (n - 1);
  return m == 0;
}