[剑指Offer]65-不用加减乘除做加法
题目
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
题解
用位运算模拟加法的三步:
- 无进位加法:异或运算。
- 进位:与运算再左移一位。
- 直到进位为0结束。
代码
public class Main {
public static void main(String[] args) {
System.out.println(Add(5,17));
}
public static int Add(int num1,int num2) {
int sum=0;
int carry=0;
do {
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(carry!=0);
return sum;
}
}
posted on 2019-07-06 13:50 coding_gaga 阅读(99) 评论(0) 编辑 收藏 举报