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

C/C++ 프로그램에서 산술 연산자를 사용하지 않고 두 정수를 합하는 방법은 무엇입니까?

<시간/>

이 튜토리얼에서는 C/C++에서 산술 연산자를 사용하지 않고 두 정수의 합을 구하는 방법을 이해하는 프로그램에 대해 논의할 것입니다.

산술 연산자를 사용하지 않고 두 개의 정수를 더하려면 포인터를 사용하거나 비트 연산자를 사용하면 됩니다.

예시

포인터 사용

#include <iostream>
using namespace std;
int sum(int a, int b){
   int *p = &a;
   return (int)&p[b];
}
int main() {
   int add = sum(2,3);
   cout << add << endl;
   return 0;
}

출력

5

예시

비트 연산자 사용

#include <iostream>
using namespace std;
int sum(int a, int b){
   int s = a ^ b;
   int carry = a & b;
   if (carry == 0)
      return s;
   else
      return sum(s, carry << 1);
}
int main() {
   int add = sum(2,3);
   cout << add << endl;
   return 0;
}

출력

5