Python中的位运算符用于对整数进行二进制位的操作。这些运算符直接作用于数字的二进制表示,而不是十进制或其他进制表示。Python支持的位运算符包括:
&
(按位与):对两个数的每个位执行逻辑AND操作。只有两个位都是1时,结果位才是1。a = 0b110 # 二进制表示为 110 b = 0b101 # 二进制表示为 101 c = a & b # 结果为 0b100,即十进制的 4
|
(按位或):对两个数的每个位执行逻辑OR操作。只要有一个位是1,结果位就是1。a = 0b110 # 二进制表示为 110 b = 0b101 # 二进制表示为 101 c = a | b # 结果为 0b111,即十进制的 7
^
(按位异或):对两个数的每个位执行逻辑XOR操作。只有两个位不同,结果位才是1。a = 0b110 # 二进制表示为 110 b = 0b101 # 二进制表示为 101 c = a ^ b # 结果为 0b011,即十进制的 3
~
(按位取反):对一个数的每个位执行逻辑NOT操作。这个运算符是单目运算符,它会翻转每个位。a = 0b110 # 二进制表示为 110 c = ~a # 结果为 0b001,即十进制的 -4(在大多数系统中,整数是补码表示)
<<
(左移):将一个数的所有位向左移动指定的位数。左边的位被丢弃,右边补0。a = 0b110 # 二进制表示为 110 c = a << 1 # 结果为 0b1000,即十进制的 8
>>
(右移):将一个数的所有位向右移动指定的位数。右边的位被丢弃,对于无符号数,左边补0;对于有符号数,左边通常是复制最高位(即符号位),这称为算术右移。a = 0b110 # 二进制表示为 110 c = a >> 1 # 结果为 0b011,即十进制的 3
位运算符在处理低级操作,如硬件编程、加密算法、网络协议等时非常有用。在Python中,它们通常用于优化性能或者实现特定的算法。