计算两个整数 a 和 b 的总和,但不允许使用运算符 + 和 - 。
示例:
给定 a = 1 和 b = 2,返回 3。
Java 解决方案
给定两个数字 a 和 b,a&b 返回由 a 和 b 上的 '1' 位组成的数字。当它左移 1 位时,它是进位。
例如,给定 a = 101 和 b = 111(二进制),a&b = 101。a&b < 1="">
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<>
}return a;
}
如果我们可以使用 运算符 ++,那么下面的解决方案就可以工作
public static int sum(int a, int b) {
while (b != 0) {
if (b < 0)="">
a--;
b++;
} else {
a++;
b--;
}
}
return a;
}`作者:Arain
链接 如何不使用加减法运算计算两个整数的和
来源:架构师小秘圈
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
联系客服