題目:
寫一個函數常熙,求兩個整數之和锚沸,要求在函數體內不得使用+、-谓苟、*官脓、/四則運算符號。
思路:
https://blog.csdn.net/lrs1353281004/article/details/87192205
利用位運算進行加法操作娜谊,但是要注意确买,python的int沒有溢出控制,需要與0xffffffff相與進行控制纱皆,否則會陷入死循環(huán)湾趾。
!派草!另外python的負數要需要求其補碼才能返回
代碼實現:
class Solution:
def Add(self, num1, num2):
#1.異或求不進位的和
#2.與并左移求進位的結果
#3.二者相加(直到沒有進位結束)
while(num2):
num1,num2 = (num1^num2)&0xffffffff, ((num1&num2)<<1)&0xffffffff
return num1 if num1 <= 0x7fffffff else ~((num1&0xffffffff)^0xffffffff)
print(Solution().Add(-1,-2))
提交結果: