位运算加法:
请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。
给定两个int A和B。请返回A+B的值
异或和求和的结果一致,与运算与进位结果一致。
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
int m=A^B;//相加但不进位
int n=(A&B)<<1;//进位但不想加
int sum=m+n;
return sum;
}
}
m=A^B;
得到当前位的相加值,不含进位;
n=(A&B);
获得进位值,n=(A&B)<<1
左移一位,右侧补零,将此进位值和m进行相加即可得到最终值。