371. Sum of Two Integers
Description
Given two integers a and b, return the sum of the two integers without using the operators + and -.
Example 1:
Input: a = 1, b = 2 Output: 3
Example 2:
Input: a = 2, b = 3 Output: 5
Constraints:
-1000 <= a, b <= 1000
Solutions
Solution 1
Thinking
Add without +/-. Bitwise: the sum without carry is XOR, the carry is AND shifted left. Repeat until the carry vanishes.
Python ints are unbounded, so mask with \(0xFFFFFFFF\) to \(32\) bits. If the sign bit is set, convert two’s complement back to a negative.
1 2 3 4 5 6 7 | |
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 | |