题目解析
371. 两整数之和
算法讲解
异或的本质就是无进位相加,但是我们需要处理进位,就需要知道哪一位上有进位,再让无进位相加的结果 + 进位即可,在重复这个过程,当进位等于0的时候,说明相加的过程已经结束
class Solution {
public:int getSum(int a, int b) {if(a == 0)return b;if(b == 0)return a;int ret = 0;while(a && b){//无进位相加ret = a ^ b;//处理进位 (a & b)是这一位上有进位,但是要加上进位,所以需要左移一位b = (a & b) << 1;a = ret;}return a;}
};