对bit运算实在不了解
"&" AND operation, for example, 2 (0010) & 7 (0111) => 2 (0010)
"^" XOR operation, for example, 2 (0010) ^ 7 (0111) => 5 (0101)
"~" NOT operation, for example, ~2(0010) => -3 (1101) what??? Don't get frustrated here. It's called two's complement.
public class Solution {
public int getSum(int a, int b) {
return (b == 0) ? a : getSum(a ^ b, (a & b) << 1);
}
}
// Iterative
public int getSum(int a, int b) {
if (a == 0) return b;
if (b == 0) return a;
while (b != 0) {
int carry = a & b;
a = a ^ b;
b = carry << 1;
}
return a;
}
本文详细介绍了位运算的基本概念及操作符,包括AND、XOR、NOT运算,并通过实例展示了这些运算的应用。此外,还提供了两种不同的Java实现方法来求两个整数之和,不使用加号或减号,而是利用位运算。

被折叠的 条评论
为什么被折叠?



