两整数之和

不使用运算符 +- ,计算两整数 ab 之和。

示例 1:

1
2
输入: a = 1, b = 2
输出: 3

示例 2:

1
2
输入: a = -2, b = 3
输出: 1

代码

a^b得到没有进位的和

a&b<<1得到进位

1
2
3
4
5
6
7
8
9
10
public int getSum(int a, int b) {
while(true){
int sum=a^b;
int carry=(a&b)<<1;
a=sum;
b=carry;
if(carry==0)break;
}
return a;
}