371. 两整数之和
题目描述
不使用运算符 + 和 - ,计算两整数a、b之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
思路
- a ^ b:代表a和b的没有进位的和
- (a & b)<<1:代表a、b的和的进位
在下面的实现中,b代表进位,就是要继续添加的数
实现
class Solution {
public int getSum(int a, int b) {
int temp = 0;
while(b != 0) {
temp = a ^ b;
b = (a & b) << 1;
a = temp;
}
return a;
}
}