题目描述
给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
eg:
输入:
1,2
输出:
3
以下是本篇文章正文内容,下面案例可供参考
解题思路
使用位运算符:
- 不考虑进位:二进制位相异或的结果为这两个数相加的结果
- 只考虑进位:二进制位相与的结果再左移一位为这两个数相加进位后的结果
若两数不需要进位,则和就等于相异或的结果
代码如下
import java.util.*;
public class Main {
public int addAB(int A, int B) {
int sum = 0;
int carry = 0;
while(B != 0){
sum = A^B;
carry = (A&B)<<1;
A = sum;
B = carry;
}
return A;
}
}