これはCalculate the sum of two integers a and b, but you are not allowed to use the operator + and -.
誰かがこのleetcode解決法が負の数でどのように機能するか説明できますか?
はなぜMOD
とMAX_INT
を必要とし、この部分は何をやっている、leetcode problem 371ためのソリューションですか? ~(a & MAX_INT)^MAX_INT
def getSum(a, b):
"""
:type a: int
:type b: int
:rtype: int
"""
MOD = 0xFFFFFFFF
MAX_INT = 0x7FFFFFFF
while b != 0:
a, b = (a^b) & MOD, ((a & b) << 1) & MOD
return a if a <= MAX_INT else ~(a & MAX_INT)^MAX_INT
print getSum4(-4,2)
-2
溶液をthis blog
ビットマスキング。あなたはそれについて学んだことがありますか? –
整数表現[here](https://en.wikipedia.org/wiki/Signed_number_representations)を確認してください。 –