在 JavaScript 中將二進位制陣列轉換為對應的整數


假設我們有一個包含 0 和 1 的數字陣列:

const arr = [0, 1, 0, 1];

我們需要編寫一個數組函式 `toBinary()`,它返回與其一起使用的陣列對應的二進位制數。

例如:

const arr = [1, 0, 1, 1];

則輸出應為 11,因為二進位制 1011 的十進位制表示為 11。

因此,讓我們編寫此函式的程式碼。

方法一:使用庫方法

在 JavaScript 中,存在一個 `parseInt()` 方法,它接受兩個引數,第一個是字串,第二個是表示特定基數的數字,例如 10 表示十進位制基數,2 表示二進位制基數。此函式解析字串引數並返回指定基數 (基數) 的整數。

在我們的例子中,要將二進位制陣列轉換為十進位制,我們可以像這樣使用 `parseInt()` 函式:

const arr = [1, 0, 1, 1];
const parseArray = arr => {
   const binaryString = arr.join("");
   return parseInt(binaryString, 2);
};
console.log(parseArray(arr));

方法二:陣列化簡

在這種方法中,我們迭代二進位制陣列並根據相應的二進位制數構造十進位制數。我們將使用左移運算子 (<<) 將累積值每次左移一位,並返回移位的累積值和當前值的按位或 (|)。

使用位運算子的程式碼:

示例

const arr = [1, 0, 1, 1];
const parseArray = arr => {
   return arr.reduce((acc, val) => {
      return (acc << 1) | val;
   });
};
console.log(parseArray(arr));

輸出

控制檯中的輸出將是:

11

更新於:2020-08-26

5K+ 次瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.