Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 변환하지 않고 바이너리 추가하기

<시간/>

문제

첫 번째와 두 번째 인수로 두 개의 바이너리 문자열 str1과 str2를 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 두 이진수의 합을 반환해야 합니다. 2진수를 10진수로 변환한 다음 더하면 결과 합계에 0이 전혀 포함되어서는 안 됩니다.

예를 들어, 함수에 대한 입력이 -

인 경우

입력

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