龙空技术网

Python位运算实现四则运算

汪同学Python 138

前言:

当前朋友们对“python的位运算”大致比较关注,同学们都想要学习一些“python的位运算”的相关文章。那么小编在网络上网罗了一些对于“python的位运算””的相关知识,希望兄弟们能喜欢,姐妹们快快来学习一下吧!

Python位运算:

位运算符

说明

使用形式

&

按位与

1&1=1,0&1=0,1&0=0,0&0=0

|

按位或

1|1=1,1|0=1,0|1=1,0|0=0

^

按位异或

1^1=0,0^0=0,1^0=1,0^1=1

~

按位取反

~1=0,~0=1

<<

按位左移

6<<1,表示;6<<2,表示;6<<3,表示

>>

按位右移

6>>1,表示;6>>2,表示;6>>3,表示

由于计算机底层只能识别0和1,这样的二进制符合。所以,使用二进制进行计算速度非常快。下面我们用位运算的方式实现加减乘除和移位操作。

代码实现:

# 位运算实现加法操作def add(a, b):    while b:        sum = a ^ b  # 异或操作        temp = (a & b) << 1  # 与操作和左移位操作        a = sum        b = temp    return a# 位运算实现减法操作def subtraction(a, b):    if a < b:        b = ~b        return -~add(a, b)    else:        a = ~a        return ~add(a, b)# 位运算实现乘法操作def multiplication(a, b):    sum = 0    while b:        sum = add(sum, a)        b -= 1    return sum# 位运算实现除法操作def division(a, b):    if a < b:        return 0    else:        res = division(subtraction(a, b), b) + 1    return res# 左移位操作 相当于十进制做乘法def left_move(a, b):    return a << b# 右移位操作 相当于十进制做除法def right_move(a, b):    return a >> bif __name__ == '__main__':    # 位运算实现加法操作    print(add(15, 3))    # 位运算实现减法操作    print(subtraction(11, 11))    # 位运算实现乘法操作    print(multiplication(6, 13))    # 位运算实现除法操作    print(division(33, 3))    # 左移位操作    print(left_move(6, 2))    # 右移位操作    print(right_move(6, 1))

运行结果

1807811243

标签: #python的位运算