使用 JavaScript 中的按位运算检查 2 的幂


我们要求编写一个 JavaScript 函数,该函数接受一个数字,并确定它是否为 2 的幂。

例如 −

f(23) = false
f(16) = true
f(1) = true
f(1024) = true

方法 -

2 的幂在二进制形式中始终只有一个位。具体如下 -

1: 0001
2: 0010
4: 0100
8: 1000

因此,在检查数字是否大于零之后,我们可以使用按位技巧来测试是否只设置了一个位。如下所示 −

num & (num - 1)

示例

以下是代码 −

const num1 = 256;
const num2 = 1024;
const isPowerOfTwo = (num = 1) => {
   if (num < 1) {
      return false;
   };
   return (num & (num - 1)) === 0;
};
console.log(isPowerOfTwo(num1));
console.log(isPowerOfTwo(num2));
console.log(isPowerOfTwo(1));
console.log(isPowerOfTwo(23));

输出

以下是在控制台上输出的 −

true
true
true
false

更新日期:11-Dec-2020

311 次浏览

开启您的职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.