简单
技术面试0 次浏览

编写一个函数,实现两个整数的加法,不使用 + 运算符。

算法工程师
位运算整数加法

答题要点

可以使用位运算来实现两个整数的加法。思路是将加法分为两部分:不进位的加法和进位。不进位的加法可以使用异或运算(^)来实现,进位可以使用与运算(&)和左移一位(<<)来实现。以下是Python代码实现: python def add(a, b): MAX = 0x7FFFFFFF MIN = 0x80000000 mask = 0xFFFFFFFF while b != 0: carry = ((a & b) << 1) & mask a = (a ^ b) & mask b = carry return a if a <= MAX else ~(a ^ mask) 在这段代码中,使用了掩码mask来处理负数的情况。时间复杂度为$O(1)$,因为整数的位数是固定的。空间复杂度为$O(1)$,只使用了常数级的额外空间。