使用 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP