Simulate addition with XOR and AND.
def getSum(a, b): mask = 0xFFFFFFFF while b & mask: carry = (a & b) << 1 a = a ^ b b = carry return a if b == 0 else ~(a ^ mask)
time, space.
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
The approach
Simulate addition with XOR and AND.
def getSum(a, b): mask = 0xFFFFFFFF while b & mask: carry = (a & b) << 1 a = a ^ b b = carry return a if b == 0 else ~(a ^ mask)
time, space.