您的位置:首页 > Web前端

剑指offer-不用加减乘除做加法-java

2018-03-28 11:26 330 查看
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

思路解析:

按位进行异或运算,0+0,1+1,结果都是0;1+0,0+1,结果都是1;刚好是不进位状态的结果
按位进行与运算,会得到需要进位的位数,所以向左移一位。
再把加的结果和进位的结果,继续加和进位。
代码:public class Solution {
public int Add(int num1,int num2) {
int sum,carry;
do{
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(carry!=0);
return sum;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: