#思路
先将两数转换为二进制,利用位运算符进行运算
例如:
10110 22
+ 01011 11
-------------------
100001 33
*两数相加,如果不进位,就是异或(^)运算
*如果进位,即1+1=10,即两数都为1,则需要两个数进行位与(&)运算
进位表示则是左移(<<)1位
#解题方法
-递归,
--异或,
---位与,
----左移.
#Code
int getSum(int a, int b){ if(b==0) { return a; } return getSum(a^b,((unsigned int)(a&b))<<1); }