如何在 JavaScript 中不進行轉換便新增二進位制數


問題

我們要求編寫一個 JavaScript 函式,該函式採用兩個二進位制字串 str1 和 str2 作為第一個和第二個引數

我們的函式應返回兩個二進位制數的和。我們不允許將二進位制數轉換為十進位制,然後相加,並且結果和不應包含任何零。

例如,如果對函式的輸入為 -

輸入

const str1 = '1101';
const str2 = '10111';

輸出

const output = '100100';

樣例

以下為程式碼 -

 演示

const str1 = '1101';
const str2 = '10111';
const addBinary = (str1 = '', str2 = '') => {
   str1 = str1.split('').reverse();
   str2 = str2.split('').reverse();
   let res = '', temp = 0;

   while (str1.length || str2.length || temp) {
      temp += (~~str1.shift()) + (~~str2.shift());
      let mod = temp % 2;
      res = mod + res;
      temp = temp > 1;
   };
   return (+res) ? res.replace(/^0+/, '') : '0';
};
console.log(addBinary(str1, str2));

輸出

100100

更新日期:22-4-2021

219 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

立即開始
廣告
© . All rights reserved.