Sum of Two Integers ohne Verwendung des Operators "+" in python

Benötigen Sie Hilfe beim Verständnis der Python-Lösungen von Leetcode 371. "Summe zweier Ganzzahlen". Ich fandhttps: //discuss.leetcode.com/topic/49900/python-solution/ ist die am häufigsten gewählte Python-Lösung, aber ich habe Probleme, sie zu verstehen.

Wie kann man die Verwendung von "% MASK" verstehen und warum "MASK = 0x100000000"?Wie ist "~ ((a% MIN_INT) ^ MAX_INT)" zu verstehen?Wenn die Summe über MAX_INT hinausgeht, schreit die Funktion einen negativen Wert (zum Beispiel getSum (2147483647,2) = -2147483647), ist das nicht falsch?
class Solution(object):

    def getSum(self, a, b):
        """
        :type a: int
        :type b: int
        :rtype: int
        """
        MAX_INT = 0x7FFFFFFF
        MIN_INT = 0x80000000
        MASK = 0x100000000
        while b:
            a, b = (a ^ b) % MASK, ((a & b) << 1) % MASK
        return a if a <= MAX_INT else ~((a % MIN_INT) ^ MAX_INT)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage