超详解——深入理解Python中的位运算与常用内置函数/模块——基础篇
目录
编辑
1.位运算
2.常用内置函数/模块
math模块
random模块
decimal模块
常用内置函数
3.深入理解和应用
位运算的实际应用
1.权限管理
2.位图
3.图像处理
2.math模块的高级应用
统计计算
几何计算
总结
1.位运算
位运算是对整数在内存中的二进制表示进行操作的一种方法。在计算机中,数据是以二进制形式存储的,位运算可以直接操作这些二进制位,从而实现高效的数据处理。Python支持以下常见的位运算符:
- 按位与(&):两个二进制数对应位都为1时,结果的该位才为1。
- 按位或(|):两个二进制数对应位有一个为1,结果的该位就为1。
- 按位异或(^):两个二进制数对应位不同,结果的该位为1。
- 按位取反(~):将二进制数的每一位取反(0变1,1变0)。
- 左移():将二进制数的所有位向右移动指定的位数,左侧补0(对于无符号数)或补符号位(对于有符号数)。
a = 60 # 二进制:0011 1100 b = 13 # 二进制:0000 1101 # 按位与 result = a & b # 结果:0000 1100 (12) print(result) # 输出:12 # 按位或 result = a | b # 结果:0011 1101 (61) print(result) # 输出:61 # 按位异或 result = a ^ b # 结果:0011 0001 (49) print(result) # 输出:49 # 按位取反 result = ~a # 结果:1100 0011 (-61),在Python中,负数用补码表示 print(result) # 输出:-61 # 左移 result = a > 2 # 结果:0000 1111 (15) print(result) # 输出:15
-
1.按位与(&)
- 例子:a & b,即 60 & 13
- 二进制表示:
- 60:0011 1100
- 13:0000 1101
- 结果:0000 1100,即12
-
2.按位或(|)
- 例子:a | b,即 60 | 13
- 二进制表示:
- 60:0011 1100
- 13:0000 1101
- 结果:0011 1101,即61
-
3.按位异或(^)
- 例子:a ^ b,即 60 ^ 13
- 二进制表示:
- 60:0011 1100
- 13:0000 1101
- 结果:0011 0001,即49
-
4.按位取反(~)
- 例子:~a,即 ~60
- 二进制表示:
- 60:0011 1100
- ~60:1100 0011(补码表示)
- 结果:-61(Python使用补码表示负数)
-
5.左移( 2,即 60 >> 2
- 二进制表示:
- 60:0011 1100
- 右移2位:0000 1111
- 结果:15
2.常用内置函数/模块
Python提供了丰富的内置函数和模块,方便进行各种计算和操作。以下是一些常用的内置函数和模块:
math模块
math模块提供了许多数学函数,如平方根、对数、三角函数等。
import math print(math.sqrt(16)) # 4.0,计算平方根 print(math.log(8, 2)) # 3.0,以2为底的对数 print(math.sin(math.pi / 2)) # 1.0,计算正弦值
random模块
random模块用于生成随机数。
import random print(random.randint(1, 10)) # 生成1到10之间的随机整数 print(random.random()) # 生成0到1之间的随机浮点数 print(random.choice(['a', 'b', 'c'])) # 从列表中随机选择一个元素
decimal模块
decimal模块提供对十进制浮点数的精确计算。
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
c = a + b
print(c) # 0.3,精确的十进制计算
常用内置函数
Python的内置函数简化了许多基本操作,例如计算绝对值、最大值、最小值、和等。
print(abs(-5)) # 5,计算绝对值 print(max(1, 2, 3)) # 3,返回最大值 print(min(1, 2, 3)) # 1,返回最小值 print(sum([1, 2, 3])) # 6,计算和
3.深入理解和应用
通过上面的例子,我们了解了Python中位运算的基本用法和一些常用内置函数/模块的使用。接下来,我们可以深入探讨一些应用场景和实际问题,进一步巩固这些知识。
位运算的实际应用
1.权限管理
- 在系统权限管理中,常常使用位运算来表示和检查权限。每个权限可以用一个二进制位表示,多个权限可以通过按位或(|)组合在一起。
READ = 0b0001 WRITE = 0b0010 EXECUTE = 0b0100 permission = READ | WRITE def has_permission(perm, check): return perm & check == check print(has_permission(permission, READ)) # True print(has_permission(permission, EXECUTE)) # False2.位图
位图(bitmap)是一种使用位来表示集合的数据结构,常用于高效的集合运算和压缩存储。
bitmap = 0 def add_to_bitmap(bitmap, value): return bitmap | (1
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

