使用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
因此,在检查了数字是否大于零之后,我们可以使用按位hack来测试仅设置了一位。如下所示-
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
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短