我想解決一個問題,即有關編寫用於添加兩個整數而不使用'+'或' - '運算符的Python代碼。我有以下的代碼,完全適用於兩個正數:使用Python中的按位運算添加兩個整數時無限循環3
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