网站首页 > 技术文章 正文
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 >> b
if __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))
运行结果
18
0
78
11
24
3
- 上一篇: Python运算符优先级终极指南:避免表达式计算的陷阱
- 下一篇: 二十几行代码快速生成除法竖式题
猜你喜欢
- 2025-08-05 python学习笔记 1.常见的数据类型
- 2025-08-05 从进阶语法到实战应用:Python中级修炼指南
- 2025-08-05 Python 面试问题:运算符
- 2025-08-05 Python解析库lxml与xpath用法总结
- 2025-08-05 Python从1到N整数求和的方法汇总
- 2025-08-05 Python语言从2.7到3.14的能力变化与演进逻辑
- 2025-08-05 第八章:Python异常处理
- 2025-08-05 72岁老翁学python编程(四)
- 2025-08-05 Python运算符探秘:掌握编程艺术的秘密武器
- 2025-08-05 用Python实现素数相关算法并做注释说明
- 08-06生产环境中使用的十大 Python 设计模式
- 08-06面试必备:Python内存管理机制(建议收藏)
- 08-06服务端开发面试必背——消息队列及它的主要用途和优点。附代码
- 08-06Python 栈:深度解析与应用
- 08-06Python中的多进程
- 08-06Python Logging 最佳实践
- 08-06Python并发数据结构实现原理
- 08-06用SendGrid和Redis队列用Python调度国际空间站的电子邮件
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)