Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.
Example 1:
Input: a = 1, b = 2
Output: 3
Example 2:
Input: a = -2, b = 3
Output: 1
思路: 一道不用'+'操作符的加法运算.现在只能算大概理解这种算法,以后还需要再学习.
max:32bit最大整数
mask:为了获取数字的后32bit
^:获取两个数字不同的bit
&:获取两个数字都是1的bit
<<:左移一bit
~:取反操作
class Solution(object):
def getSum(self, a, b):
"""
:type a: int
:type b: int
:rtype: int
"""
MAX = 0x7FFFFFFF
mask = 0xFFFFFFFF
while b != 0:
a, b = (a ^ b) & mask, ((a & b) << 1) & mask
return a if a <= MAX else ~(a ^ mask)

本文介绍了一种在不使用+和-运算符的情况下,实现两个32位整数相加的算法。通过位操作,如异或(^)、与(&)、左移(<<)和取反(~),来实现加法运算。该算法适用于计算机科学和编程领域,特别是对于深入理解位操作和计算机底层运算机制的读者。
569

被折叠的 条评论
为什么被折叠?



