LeetCodeDiary

A Diary for solving LeetCode problems

View on GitHub

371. 两整数之和

给你两个整数 ab不使用 运算符 +- ,计算并返回两整数之和。

示例 1:

输入:a = 1, b = 2
输出:3

示例 2:

输入:a = 2, b = 3
输出:5

提示:

位运算

利用位运算模拟加法

详见:Python 位运算一些坑

代码

class Solution:
    def getSum(self, a: int, b: int) -> int:
        a &= 0xFFF
        b &= 0xFFF
        while b:
            carry = a & b
            a ^= b
            b = ((carry) << 1) & 0xFFF
            # print((a, b))
        return a if a < 0x3FF else ~(a^0xFFF)