-
题目
-
解题
使用位运算,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,但是接着就要左移,所以对结果没有影响