使用 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