ปัญหา
เราต้องเขียนฟังก์ชัน 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