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

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/2/21 8:44:17

我们需要编写一个 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

相关文章


有用资源