1. 题目:
1.1 题目描述:
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
1.2 示例:
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
2. 思路:
2.1 低位 = a^b,进位 = a & b;
2.2 只要进位不为0,就需要一直计算下去。
2.3 注意负数左移会出错,所以要 &INT_MAX。
3. C++代码:
class Solution {
public:
int getSum(int a, int b) {
while(b != 0){
int temp = a ^ b;
b = ((a & b) & INT_MAX )<< 1;
a = temp;
}
return a;
}
};