50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > python 位运算实现加减乘除四则运算

python 位运算实现加减乘除四则运算

时间:2021-09-03 05:42:37

相关推荐

python 位运算实现加减乘除四则运算

写在前面:加法在测试时遇到了一个问题,用python在算-4+8时,会无限循环

我打印了每一次的sum和carry,原来是carry会越来越大

到后面会非常大

但是我试了下C++发现是可以计算的,它溢出后会变成4+0

1、加法

def add(a, b): # 递归if b==0:return asum = a ^ b # 异或得到两数之和carry = (a & b) << 1 # 与得到进位,左移后与sum相加return add(sum, carry)def add(a, b): # 非递归sum = 0carry = 0while b:sum = a ^ bcarry = (a & b) << 1a = sumb = carryreturn a

2、减法

def sub(a, b):return add(a, add(~b,1))

3、乘法

def mul(a, b):flag = True if (a^b)>=0 else False # 同号时flag为Trueif a<0:a = add(~a, 1)if b<0:b = add(~b, 1)res = 0while b:if b&1: res = add(res, a)a <<= 1b >>= 1return res if flag else add(~res,1)

4、除法

def div(a, b):flag = True if (a^b)>=0 else False # 同号时flag为Trueif a<0:a = add(~a, 1)if b<0:b = add(~b, 1)res = 0for i in range(31, -1, -1):if a>=(b<<i):res = add(res, 1<<i)a = sub(a, b<<i)return res if flag else add(~res,1)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。