Sum of Two Integers
Question
Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.
Example: Given a = 1 and b = 2, return 3.
Tags
- Bit Manipulation
Thought
Reference: http://bookshadow.com/weblog/2016/06/30/leetcode-sum-of-two-integers/
Code
class Solution(object):
def getSum(self, a, b):
"""
:type a: int
:type b: int
:rtype: int
"""
MAX_INT = 0x7FFFFFFF
MASK = 0x100000000
while b:
a, b = (a ^ b) % MASK, ((a & b) << 1) % MASK
return a if a <= MAX_INT else ~((a & MAX_INT) ^ MAX_INT)