如何在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP