解题思路:
用位运算做加法。
s=a+b,s就是不考虑进位的结果+进位,直到进位等于0。
具体见代码:
class Solution {
public:
//用位运算
int Add(int num1, int num2) {
while(num2!=0){
//保存进位
int c=((unsigned int)(num1&num2))<<1;
//第一次进来,先不考虑进位,看各位应该是多少
//都是0或1,那该位就是0;一个0一个1,那该位就是1
num1^=num2;
//下一次要计算不考虑进位和进位的结果
num2=c;
}
return num1;
}
};