-
题目
-
解题
使用位运算,10进制的加减法,计算两个数的和的个数,进位数,相加;
-
code
class Solution {
public:
int add(int a, int b) {
if(b==0)
return a;
return add(a^b,(unsigned int)(a&b)<<1);
}
};
使用unsingeed int是因为C++不支持负值左移,要用unsign int;并且使用ubsigned int会把第一个索引位置0变为1,但是接着就要左移,所以对结果没有影响



