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

อัลกอริทึมในการเพิ่มอาร์เรย์ไบนารีใน JavaScript


พื้นฐานของการบวกไบนารี

กฎสี่ข้อของการบวกเลขฐานสองคือ -

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

เมื่อคำนึงถึงประเด็นเหล่านี้ การบวกเลขฐานสองจึงคล้ายกับการบวกทศนิยมมาก (ซึ่งเป็นไปตามหลักการยก)

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับในสองอาร์เรย์ที่มีเฉพาะสตริงไบนารี (อาจเป็น '0' หรือ '1')

ฟังก์ชันควรเพิ่มบิตไบนารีที่สอดคล้องกันจากอาร์เรย์และส่งคืนอาร์เรย์ใหม่ที่มีผลลัพธ์เพิ่มเติมของอาร์เรย์เหล่านั้น

ตัวอย่างเช่น − หากอาร์เรย์อินพุตเป็น −

const arr1 = ['1', '0', '1'];
const arr2 = ['1', '0', '1'];

จากนั้นผลลัพธ์ควรเป็น −

const output = ['1', '0', '1', '0'];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr1 = ['1', '0', '1'];
const arr2 = ['1', '0', '1'];
const addBinary = (arr1 = [], arr2 = []) => {
   const str1 = arr1.join('');
   const str2 = arr2.join('');
   let carry = 0, temp = 0, res = '';
   for(let i = Math.max(str1.length, str2.length) − 1; i >= 0; i−−){
      const el1 = +str1[i] || 0;
      const el2 = +str2[i] || 0;
      if(el1 + el2 + carry > 1){
         temp = 0;
         carry = 1;
      }else{
         temp = el1 + el2 + carry;
         carry = 0;
      };
      res = temp + res;
   };
   if(carry){
      res = carry + res;
   };
   return res.split('');
};
console.log(addBinary(arr1, arr2));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[ '1', '0', '1', '0' ]