Calculate the sum of two integers a and b without using the + or - operators.
a
b
+
-
Input: a = 1, b = 2 Output: 3
-1000 <= a, b <= 1000
Sum without carry is a ^ b; carry bits are (a & b) << 1. Iteratively propagate carry until it is zero.
a ^ b
(a & b) << 1
b != 0
carry = (a & b) << 1
a = a ^ b
b = carry
public int getSum(int a, int b) { while (b != 0) { int carry = (a & b) << 1; a = a ^ b; b = carry; } return a; }