题解 | #不用加减乘除做加法#
不用加减乘除做加法
https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215
#
# 代码中的类名、方法名、参数名已经add, 指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num1 int整型
# @param num2 int整型
# @return int整型
#
class Solution:
def Add(self , num1: int, num2: int) -> int:
# write code here
"""思路 位运算
"""
# add表示进位值
add_ = num2
# sum表示总和
sum_ = num1
# 当不再有仅为的时候终止循环
while add_:
# 将每轮的无进位和与进位值做异或求和
temp = sum_ ^ add_
# 进位值是用与运算产生的
add_ = (sum_ & add_) << 1
# 更新sum为新的和(处理了负数问题)
sum_ = temp & 0xFFFFFFFF
return sum_ if sum_ >> 31 == 0 else sum_ - 4294967296
按位运算的题目都需要进行重新构思

查看10道真题和解析
