049不用加减乘除做加法
题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
方法:二进制位运算
思路:转换成二进制,先对每位进行相加,二进制每位相加就相当于各位做异或操作,判断是否需要进位,各位做与操作后再向左移一位得到
代码:
public int Add(int num1,int num2) {
while(num2!=0){
int temp=num1^num2;
num2=(num1&num2)<<1;//进位是否为0
num1=temp;
}
return num1;
}