class Solution {
public:
int getSum(int a, int b) {
int c;
while(b != 0) {
c = a^b;
b = a&b;
b = (unsigned int)b << 1;
a = c;
}
return a;
}
};
c 是没进位的和 异或^
b 是进位 与&
不断的异或和与,异或的结果是不含进位的加,与得到的是每一位的进位,让结果和进位继续异或(无进位加),直到进位为0.