题目描述
a + b位运算做
样例
输入
3 4
输出
7
C++ 代码
#include<iostream>
using namespace std;
int sum;
int add(int a, int b)
{
sum = a;
while(b != 0)
{
sum = a ^ b;
b = (a & b) << 1;
a = sum;
}
return sum;
}
int main()
{
int a, b;
cin >> a >> b;
cout << add(a, b) << endl;
return 0;
}
/*
题解:
通过对x和y进行&位运算,得出每一位上的进位。
对x和y进行^位运算,得出没有加进位的和。
3.将所得的和当做新的x,所得的进位往左移一位(第零位的进位输入为0)当做新的y,继续做上面的步骤,直到进位为0。
此时x中保存的就是x和y的和了。
递归的条件就是x=0或y=0
*/