Python 提供了一组位运算符,用于对整数的二进制表示进行操作。
这些运算符允许您在位级别上执行操作,如按位与、按位或、按位异或等。
一、按位与(AND)
用 &
表示。
对于每个比特位,只有两个操作数的对应位都为 1 时,结果为 1,否则为 0。
a = 5 # 二进制:0101
b = 3 # 二进制:0011
result = a & b # 二进制:0001,结果为 1
二、按位或(OR)
用 |
表示。
对于每个比特位,只要两个操作数的对应位中至少有一个为 1,结果为 1,否则为 0。
a = 5 # 二进制:0101
b = 3 # 二进制:0011
result = a | b # 二进制:0111,结果为 7
三、按位异或(XOR)
用 ^
表示。
对于每个比特位,只有两个操作数的对应位不同,结果为 1,否则为 0。
a = 5 # 二进制:0101
b = 3 # 二进制:0011
result = a ^ b # 二进制:0110,结果为 6
四、按位取反
用 ~
表示。
对于每个比特位,0 变为 1,1 变为 0。
a = 5 # 二进制:0101
result = ~a # 二进制:1010,结果为 -6(由于 Python 中整数使用补码表示)
五、左移
用 <<
表示。
将一个数的所有比特位向左移动指定的位数,低位补 0。
a = 5 # 二进制:0101
result = a << 2 # 二进制:010100,结果为 20
六、右移
用 >>
表示。
将一个数的所有比特位向右移动指定的位数。
a = 5 # 二进制:0101
result = a >> 1 # 二进制:0010,结果为 2
位运算符在一些特定的编程场景中很有用,如位掩码、位字段操作等。
它们允许您在更底层的层次上操作数据,对于一些性能敏感的情况可能会很有帮助。