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

JavaScript에서 '+', '-', '/', '*'를 사용하지 않고 두 숫자의 합 찾기

<시간/>

두 개의 숫자 m과 n을 받는 JavaScript 함수 add()를 작성해야 합니다. 함수는 네 가지 기본 산술 연산을 사용하지 않고 입력으로 취한 두 숫자를 더하고 합계를 반환해야 합니다.

예시

이에 대한 코드는 -

const m = 67, n = 33;
const add = (x, y) => {
   while(y !== 0){
      let carry = x & y;
      x = x ^ y;
      y = carry << 1;
   };
   return x;
};
console.log(add(m, n));

설명

두 비트를 XOR(^)하여 두 비트의 합을 구할 수 있습니다. 그리고 두 비트의 AND(&)를 수행하여 캐리 비트를 얻을 수 있습니다.

여기서 우리는 2개의 정수를 더하기 위해 2개의 단일 비트를 추가하는 데 사용할 수 있는 Half Adder 논리의 확장 버전을 사용했습니다. x와 y가 같은 위치에 비트를 설정하지 않은 경우 x와 y의 비트 XOR(^)은 x와 y의 합을 제공합니다.

공통 세트 비트도 통합하기 위해 비트 AND(&)가 사용됩니다. x와 y의 비트 AND는 모든 캐리 비트를 제공합니다. (x &y) <<1을 계산하고 x ^ y에 추가하여 필요한 결과를 얻었습니다.

출력

콘솔의 출력은 -

100