添加二进制文件而不在 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