【牛客网】不用加减法乘除做加法 解题报告 (python)

原题地址:https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&tqId=11201&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking&tPage=3

题目描述:

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

解题方案:

采用位运算计算加法,有两个步骤,一个是与操作,计算进位符;一个是异或操作,不考虑进位。

# -*- coding:utf-8 -*-
class Solution:
    def Add(self, num1, num2):
        if not num1:
            return num2
        if not num2:
            return num1
        while num2!=0:
            num1,num2=(num1^num2)& 0xFFFFFFFF,(num1&num2)<<1
        return num1 if num1 >> 31 == 0 else num1 - 4294967296
        # write code here

 

你可能感兴趣的:(位运算)