Computer >> Máy Tính >  >> Lập trình >> Javascript

Thuật toán thêm mảng nhị phân trong JavaScript

Kiến thức cơ bản về phép cộng nhị phân -

Bốn quy tắc của phép cộng nhị phân là -

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

Hãy ghi nhớ những điểm này, phép cộng nhị phân rất giống với phép cộng thập phân (tuân theo nguyên tắc mang).

Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng chỉ chứa các chuỗi nhị phân. ('0' hoặc '1').

Hàm sẽ thêm các bit nhị phân tương ứng từ các mảng và trả về một mảng mới chứa kết quả bổ sung của các mảng đó.

Ví dụ - Nếu mảng đầu vào là -

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

Sau đó, kết quả đầu ra phải là -

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

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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