题解 | #不用加减乘除做加法#
不用加减乘除做加法
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
按位运算的题目都需要进行重新构思