题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
# -*- coding:utf-8 -*-
class Solution:
def Add(self, num1, num2):
# write code here
mask = 0xFFFFFFFF
maxval = 0x7FFFFFFF
while num2:
num1, num2 = (num1^num2)&mask, (num1&num2)<<1
return num1 if num1<=maxval else ~(num1^mask)
不用新变量,交换2个变量的值,比如说有2个变量a,b,我们希望交换他们的值,有两种方法。
基于加减法: a = a + b , b = a - b , a = a - b
基于异或运算:a = a ^ b , b = a ^ b , a = a ^ b