我正在尝试使用Python代码解决一个问题,需要我在不使用“+”或“-”运算符的情况下添加两个整数。我有以下代码可以完美地处理两个正数:
def getSum(self, a, b):
while (a & b):
x = a & b
y = a ^ b
a = x << 1
b = y
return a ^ b
如果输入是两个正整数或两个负整数,则此代码能够完美运行,但当一个数字为正数而另一个数字为负数时会失败。它会进入无限循环。有任何想法为什么会发生这种情况吗?
编辑:这里是链接,讨论了修复此问题的代码。
a
和b
?在循环期间打印或观察a
和b
的值 - 它们是否落入重复模式?此外,a
或b
是否为负操作数会有影响吗? - cxw