Leetcode Link: 剑指 Offer 65. 不用加减乘除做加法 - 力扣(LeetCode)

题目

解法一

思路

题解

题解

class Solution:
    def add(self, a: int, b: int) -> int:
		# 获取补码
        x = 0xffffffff
        a, b = a & x, b & x
        while b != 0:
	        #     非进位和n     进位和c
            a, b = (a ^ b), (a & b) << 1 & x
		# 如果有负数,需特殊处理(else后)
        return a if a <= 0x7fffffff else ~(a ^ x)

启发和联系