题目:两整数之和
不使用运算符 + 和 - ,计算两整数a 、b之和。
示例:
输入: a = 1, b = 2
输出: 3
输入: a = -2, b = 3
输出: 1
思考:
先将a、b异或。异或运算相同为0,不同为1。相当于不进位加法。
再将a与b相与后左移一位,与运算有0则为0,在左移一位,相当于进位。
结果不为0,继续重复操作。
实现:
class Solution {
public int getSum(int a, int b) {
while(b != 0){
int sum = a ^ b;
int temp = (a & b) << 1;
a = sum;
b = temp;
}
return a;
}
}