题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
解决:
十进制加法:
各位相加不进位
做进位
将二者的结果相加
对应二进制加法:
对每一位相加,相同为0,不同为1——异或^
进位,全1为1——与运算&,并向左移一位<<
重复以上两个步骤
1.递归
public int Add(int num1,int num2) {
if(num2==0) return num1;
return Add(num1^num2,(num1&num2)<<1);
}
2.可改成循环