赞
踩
目录
位运算是对整数在内存中的二进制表示进行操作的一种方法。在计算机中,数据是以二进制形式存储的,位运算可以直接操作这些二进制位,从而实现高效的数据处理。Python支持以下常见的位运算符:
- 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 # 结果:1111 0000 (240)
- print(result) # 输出:240
-
- # 右移
- result = a >> 2 # 结果:0000 1111 (15)
- print(result) # 输出:15
1.按位与(&)
a & b
,即 60 & 13
2.按位或(|)
a | b
,即 60 | 13
3.按位异或(^)
a ^ b
,即 60 ^ 13
4.按位取反(~)
~a
,即 ~60
5.左移(<<)
a << 2
,即 60 << 2
6.右移(>>)
a >> 2
,即 60 >> 2
Python提供了丰富的内置函数和模块,方便进行各种计算和操作。以下是一些常用的内置函数和模块:
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
模块用于生成随机数。
- import random
-
- print(random.randint(1, 10)) # 生成1到10之间的随机整数
- print(random.random()) # 生成0到1之间的随机浮点数
- print(random.choice(['a', 'b', 'c'])) # 从列表中随机选择一个元素
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,计算和
通过上面的例子,我们了解了Python中位运算的基本用法和一些常用内置函数/模块的使用。接下来,我们可以深入探讨一些应用场景和实际问题,进一步巩固这些知识。
- 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)) # False
位图(bitmap)是一种使用位来表示集合的数据结构,常用于高效的集合运算和压缩存储。
- bitmap = 0
-
- def add_to_bitmap(bitmap, value):
- return bitmap | (1 << value)
-
- def check_bitmap(bitmap, value):
- return bitmap & (1 << value) != 0
-
- bitmap = add_to_bitmap(bitmap, 3)
- bitmap = add_to_bitmap(bitmap, 5)
-
- print(check_bitmap(bitmap, 3)) # True
- print(check_bitmap(bitmap, 4)) # False
- def apply_mask(value, mask):
- return value & mask
-
- def combine_channels(r, g, b):
- return (r << 16) | (g << 8) | b
-
- mask = 0xFF
- value = 0x123456
- masked_value = apply_mask(value, mask)
- print(hex(masked_value)) # 0x56
-
- r = 0x12
- g = 0x34
- b = 0x56
- combined_value = combine_channels(r, g, b)
- print(hex(combined_value)) # 0x123456
math
模块可以进行一些基本的统计计算,例如平均值、标准差等。 - import math
-
- data = [2, 4, 4, 4, 5, 5, 7, 9]
-
- def mean(data):
- return sum(data) / len(data)
-
- def variance(data):
- m = mean(data)
- return sum((x - m) ** 2 for x in data) / len(data)
-
- def std_dev(data):
- return math.sqrt(variance(data))
-
- print(mean(data)) # 5.0
- print(std_dev(data)) # 2.0
math
模块中的三角函数可以用于几何计算,例如计算三角形的面积、圆的周长和面积等。 - import math
-
- def triangle_area(a, b, c):
- s = (a + b + c) / 2
- return math.sqrt(s * (s - a) * (s - b) * (s - c))
-
- def circle_area(radius):
- return math.pi * radius ** 2
-
- def circle_circumference(radius):
- return 2 * math.pi * radius
-
- print(triangle_area(3, 4, 5)) # 6.0
- print(circle_area(3)) # 28.274333882308138
- print(circle_circumference(3)) # 18.84955592153876
Python在处理低级别二进制操作和高级别数学计算上的强大功能。位运算提供了高效的数据处理手段,尤其在权限管理、位图处理和图像处理等领域具有重要应用。而内置的数学和随机数函数则为科学计算、数据分析等领域提供了强大的支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。