371. Summe zweier Ganzzahlen
Berechnen Sie anhand zweier Ganzzahlen a und b ohne Verwendung der Operatoren + und - die Summe der beiden Ganzzahlen und geben Sie sie zurück.
class Solution {
public:
int getSum(int a, int b) {
while (b != 0) {
// 计算进位:将 a 和 b 进行位与操作,然后左移 1 位。
unsigned int carry = (unsigned int)(a & b) << 1;
// 计算不考虑进位的和:将 a 和 b 进行位异或操作,得到加法的结果。
a = a ^ b;
// 将进位值赋值给 b,为下一次迭代做准备。
b = carry;
}
// 当进位为 0 时,a 的值就是最终的和。
return a;
}
};
Zusammenfassung dieser Frage:
a ^ b
Mit anderen Worten, die Funktion eines XOR b: Ermitteln Sie das Ergebnis der Addition zweier Zahlen ohne Übertrag.(a & b) << 1
Funktion: Kann den Übertrag der Addition zweier Zahlen berechnen