sum=a^b为不考虑进位的情况下进行了加法运算

carry=(a&b)<<1求出了每一位的进位,如果进位不为0,加到sum上,重新求得sum和carry。如此循环直到进位为0


class Solution {
public:
    int Add(int num1, int num2)
    {
		int a, b;
		while (true)
		{			
			a = num1 ^ num2;
			b = (num1 & num2) << 1;
			if (!b)
			{
				break;
			}
			
			num1 = a;
			num2 = b;
		}
		
		return a;
    }
};