如何在C / C ++中不使用算术运算符的情况下将两个整数相加?

下面是一个不使用算术运算符将两个数字相加的示例。

示例

#include <iostream>
#include <cmath>
using namespace std;
int add(int val1, int val2) {
   while(val2 != 0) {
      int c = val1 & val2;
      val1 = val1 ^ val2;
      val2 = c << 1;
   }
   return val1;
}
int main() {
   cout <<"The sum of two numbers : "<< add(28, 8);
   return 0;
}

输出结果

The sum of two numbers : 36

在上面的程序中,函数add()定义了两个int类型参数。两个数字的加法在add()中编码

int add(int val1, int val2) {
   while(val2 != 0) {
      int c = val1 & val2;
      val1 = val1 ^ val2;
      val2 = c << 1;
   }
   return val1;
}

在main()函数中,通过调用函数add()打印结果

cout <<"The sum of two numbers : "<< add(28, 8);