Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++에서 ++ 또는 + 또는 다른 산술 연산자를 사용하지 않고 두 개의 숫자를 어떻게 추가합니까?

<시간/>

이 기사에서는 +, ++, - 또는 --와 같은 산술 연산자를 사용하지 않고 두 개의 숫자를 더하는 방법을 볼 것입니다.

이 문제를 해결하기 위해 이진 가산기 논리를 사용하여 해결할 수 있습니다. 이 경우 우리는 반가산기와 전가산기를 설계했습니다. 이 가산기는 1비트 이진수를 더할 수 있습니다. 여러 가산기를 계단식으로 연결하여 더 큰 수를 더하는 회로를 만들 수 있습니다.

그 가산기에서 우리는 숫자 사이에 XOR 연산을 수행한 다음 캐리에 대해 AND 논리를 수행했습니다. 이러한 기능은 여기에 두 개의 숫자를 추가하기 위해 구현됩니다.

예시 코드

#include <iostream>
using namespace std;
int add(int a, int b) {
   while (b != 0) {         //until there is no carry, iterater
      int carry = a & b;    //find carry by anding a and b
      a = a ^ b;           //perform XOR on a and b, and store into a
      b = carry << 1;     //the carry is shifted one bit to the left, and store it to b
   }
   return a;
}
int main() {
   int a, b;
   cout << "Enter two numbers to add: ";
   cin >> a >> b;
   cout << "The result is: " << add(a, b);
   return 0;
}

출력

Enter two numbers to add: 56
23
The result is: 79