题目描述
不使用运算符
+
和-
,计算两整数a
、b
之和。
解法
不使用加减号,我们首先想到的是将整数转化为二进制进行按位操作,具体的思路见代码。
代码
class Solution {
public int getSum(int a, int b) {
int sum=a,carry=b;
sum=a^b;//异或操作求的是没有进位的求和
carry=(a&b)<<1;//与操作左移一位就是进位
while(carry!=0) return getSum(sum,carry);//使用递归,一直到没有进位为止
return sum;
}
}