剑指offer-不用加减乘除做加法
程序员文章站
2022-06-17 16:16:20
...
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路(剑指offer第二版p311)
java实现
public class Solution {
public int Add(int num1,int num2) {
if(num2==0)
return num1;
int sum=0;
int carry=0;
while(num2!=0){
sum=num1^num2;//异或 相同为0,不同为1 0+0=0 1+1=0 0+1=1 1+0=1 不带进位
carry=(num1&num2)<<1; // 1+1进位
num1=sum;
num2=carry;
}
return sum;
}
}