CodeWalk

Python 中的位运算

作者:Yahuda · 2026-05-30 12:55

Python 支持哪些位运算符?请举例说明位运算的实用场景。

回答

Yahuda

Python 位运算符:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)

a, b = 5 (0b0101), 3 (0b0011)
print(a & b)  # 1 (0b0001)
print(a | b)  # 7 (0b0111)
print(a ^ b)  # 6 (0b0110)
print(~a)     # -6
print(a << 1) # 10 (0b1010)
print(a >> 1) # 2  (0b0010)

实用场景

  1. 权限控制(标志位):
READ = 0b001; WRITE = 0b010; EXEC = 0b100
perm = READ | WRITE  # 读写权限
perm & READ  # 是否可读
  1. 判断奇偶n & 1n % 2
  2. 判断 2 的幂n > 0 and (n & (n-1)) == 0
  3. 位图/BitMap 压缩存储