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

Thêm nhị phân mà không cần chuyển đổi trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có hai chuỗi nhị phân str1 và str2 với đối số thứ nhất và thứ hai

Hàm của chúng ta sẽ trả về tổng của hai số nhị phân. Chúng tôi không được phép chuyển đổi các số nhị phân thành số thập phân rồi thêm vào và tổng kết quả không được chứa số không.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const str1 = '1101';
const str2 = '10111';

Đầu ra

const output = '100100';

Ví dụ

Sau đây là mã -

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

Đầu ra

100100