如何在 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

更新时间:2020 年 3 月 2 日

506 次浏览

开启你的 职业生涯

完成课程并获得认证

立即开始
广告