class Solution {
public:
int Add(int num1, int num2)//将加法分为进位的部分和不进位的部分,和为两部分之和
{
int n1 = (num1 & num2) << 1;//进位的部分
int n2 = num1 ^ num2;//不用进位的部分
while(n1 & n2){//当进位的部分和不进位的部分有一个为0时,结果为不为0的那一个
num1 = n1;
num2 = n2;
n1 = (num1 & num2) << 1;
n2 = num1 ^ num2;
}
return n1|n2;
}
};