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