计算两个整数a和b的总和,但不允许使用+和-运算符。
示例:
给定a = 1和b = 2,则返回3。
Java解决方案
给定两个数字a和b,a&b返回由a和b上的“ 1”位形成的数字。当它左移一位时,就是进位。
例如,给定a = 101和b = 111(二进制),a&b = 101。a&b << 1 = 1010。
a ^ b是由a和b的不同位形成的数字。a&b = 10。
public int getSum(int a, int b) {
while(b!=0){
int c = a&b;
a=a^b;
b=c<<1;
}
return a;
}