不使用算术运算符的加法实现
思路:二进制表示时,1+1=0,0+0=0,1+0=1,0+1=1类似于异或运算。仅当两者均为1时,产生进位即1+1=1,类似于1&1运算
#include <iostream>
using namespace std;
int add(int a,int b)
{
if(b==0) return a;
int sum=a^b;
int carry=(a&b)<<1;
return add(sum,carry);
}
int main()
{
cout << add(5,6) << endl;
return 0;
}
输出结果:
11