不用 “+” 实现加法运算!
- X ^ Y 的结果为 X + Y 的后不存在进位的结果!
- (X & Y)<<1 的进位为 X + Y 的只存在进位结果!
所以如果能够求出 X^Y + (X & Y)<<1 的结果即可:
即 递归求出 (X^Y) ^ (X & Y)<<1 当 (X & Y)<<1 != 0 时
的结果!
int addAB(int a,int b){
if( b == 0 ) return a;
while(b != 0){
int sum = a ^ b;
int add = (a&b)<<1;
a = sum;
b = add;
}
return a;
}