给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
测试样例: 1,2 返回:3
位运算!
1.二进制位异或运算相当于对应为相加,不考虑进位
2.二进制位与运算左移一位相当于对应位相加之后的进位
3.两个数相加:对应二进制位相加的结果+进位的结果
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
if(B == 0){
return A;
}
int sum = 0;
int carray = 0;
while(B!=0){
sum = A^B;
carray = (A&B)<<1;
A = sum;
B = carray;
}
return A;
}
}