跳到主要内容

解释 Python 中的位运算符?

参考答案:

位运算符在 Python 中用于处理数字的二进制表示。这些运算符直接对数字的二进制位进行操作。以下是 Python 中常见的位运算符及其解释:

  1. 按位与(&):此运算符将两个数字的二进制表示进行“与”操作。两个相应的二进制位都为1时,结果位才为1,否则为0。

例如:

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = a & b  # c = 0000 1100
print(c)  # 输出 12
  1. 按位或(|):此运算符将两个数字的二进制表示进行“或”操作。两个相应的二进制位中只要有一个为1,结果位就为1,否则为0。

例如:

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = a | b  # c = 0011 1101
print(c)  # 输出 61
  1. 按位异或(^):此运算符将两个数字的二进制表示进行“异或”操作。两个相应的二进制位相异时,结果位为1,相同时为0。

例如:

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = a ^ b  # c = 0011 0001
print(c)  # 输出 49
  1. 按位取反(~):此运算符对一个数字的二进制表示进行“取反”操作。每个二进制位上的1变为0,0变为1。

例如:

a = 60  # 60 = 0011 1100
b = ~a  # b = 1100 0011
print(b)  # 输出 -61

注意,取反操作的结果通常是一个负数,因为在 Python 中,整数的二进制表示采用的是补码形式。

  1. 左移(<<):此运算符将数字的二进制表示向左移动指定的位数。右侧空出的位用0填充。

例如:

a = 60  # 60 = 0011 1100
b = a << 2  # b = 1111 0000
print(b)  # 输出 240
  1. 右移(>>):此运算符将数字的二进制表示向右移动指定的位数。左侧空出的位用符号位填充(正数填充0,负数填充1)。

例如:

a = 60  # 60 = 0011 1100
b = a >> 2  # b = 0000 1111
print(b)  # 输出 15

这些位运算符在处理底层数据、优化性能和进行某些特定的算法操作时非常有用。