如何在 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