解题思路

^ 异或运算符可以看成是不进位的加法, 因此我们可以有以下思路,不断将num1与num2进行不进位加法,但将进位的值赋值num2,此后继续进行不进位加法,直到进位值为0。

int Add(int num1, int num2) 
{
    while(num2)
    {
        int t = (num1 & num2) << 1;
        num1 ^= num2;
        num2 = t;
    }
    return num1;
}