题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷
四则运算符号。
不能使用加减乘除,所以想到位运算,首先将需要相加的两个元素进行异或运算,然后与运算的结果进行左移,两个数再进行相加,如果不产生进位,则计算结束。
private static int addSum(int a, int b) {
int sum1=a^b;
int sum2=(a&b)<<1;
if(sum2==0){
return sum1;
}else {
return addSum(sum1,sum2);
}
}