不使用算术运算符的加法实现

不使用算术运算符的加法实现

思路:二进制表示时,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

猜你喜欢

转载自blog.csdn.net/u013069552/article/details/80950603