一.题目解析:

两=-整数的和不用加法
算法解析:
我们知道异或是一种不进位的加法

所以我们用这种特殊的加法来代替
我们找进位就很简单了,1和1进位,&的特性就是有0就是0,就可以找到哪里是进位,进一位应该是往前一位,所以我们左移(<<1)一位.
下面我们举个例子来展现所有过程:
13+23=36,即01101+10111=100100

二.代码编写
cpp
class Solution {
public:
int getSum(int a, int b) {
while(b!=0)//找不到进位了,退出
{
int x=(a&b)<<1;//寻找进位
a=a^b;//不进位的加法
b=x;
}
return a;
}
};