使用位运算对两个数求和-Python代码
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:
异或:求各位只和
与:计算进位
Python代码
# -*- coding:utf-8 -*- class Solution: def Add(self, num1, num2): # write code here pos_sum = num1 while num2: pos_sum = (num1^num2)& 0xffffffff num2 = ((num1&num2)<<1)& 0xffffffff num1 = pos_sum if pos_sum <= 0x7fffffff: return pos_sum else: return ~(pos_sum ^ 0xffffffff) note: 0xffffffff表示-1 1111 1111 1111 1111 1111 1111 1111 1111(第一个1是符号位) 0x7fffffff表示最大正数,0111 1111 1111 1111 1111 1111 1111 1111(0是符号位)对0取反为-1,对1取反为-2
相关推荐
choupiaoyi 2020-07-28
chenfei0 2020-07-18
kuoying 2019-12-30
代码之神 2019-09-08
BeiweiHuang 2011-06-04
yaohustiAC 2019-07-01
xxjoy 2019-06-28
maple00 2019-04-01
小五 2019-04-01
86590495 2018-11-20
程序艺术 2013-01-29
wujimiao 2019-04-25
PHP100 2019-03-28
PHP100 2019-03-28
PHP100 2019-03-27
Tags 2018-05-14
vczh的日常 2018-05-09
数据分析侠 2018-03-20