难度简单296
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2 输出: 3
示例 2:
输入: a = -2, b = 3 输出: 1
// a = 1 b = 2
// binary num : a= 0001 b=0010
// first bit : a+b = 1
// second bit : a+b = 1
// sum : a+b = 0011 = 3
// low = a ^ b;
// low = a & b;
public int getSum(int a, int b) {
if(a == 0 || b == 0){
return a == 0 ? b : a;
}
int low = 0, carry = 0;
while(true){
low = a ^ b;
carry = a & b;
if(carry == 0) break;
a = low;
b = carry << 1;
}
return low;
}