Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การเพิ่มไบนารีโดยไม่ต้องแปลงใน 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