题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:
https://blog.csdn.net/lrs1353281004/article/details/87192205
利用位运算进行加法操作,但是要注意,python的int没有溢出控制,需要与0xffffffff相与进行控制,否则会陷入死循环。
!!另外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))
提交结果:
![](https://img.haomeiwen.com/i12950574/9a655a111b35179b.png)
网友评论