解释 Python 中的位运算符?
参考答案:
位运算符在 Python 中用于处理数字的二进制表示。这些运算符直接对数字的二进制位进行操作。以下是 Python 中常见的位运算符及其解释:
- 按位与(&):此运算符将两个数字的二进制表示进行“与”操作。两个相应的二进制位都为1时,结果位才为1,否则为0。
例如:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a & b # c = 0000 1100
print(c) # 输出 12
- 按位或(|):此运算符将两个数字的二进制表示进行“或”操作。两个相应的二进制位中只要有一个为1,结果位就为1,否则为0。
例如:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a | b # c = 0011 1101
print(c) # 输出 61
- 按位异或(^):此运算符将两个数字的二进制表示进行“异或”操作。两个相应的二进制位相异时,结果位为1,相同时为0。
例如:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a ^ b # c = 0011 0001
print(c) # 输出 49
- 按位取反(~):此运算符对一个数字的二进制表示进行“取反”操作。每个二进制位上的1变为0,0变为1。
例如:
a = 60 # 60 = 0011 1100
b = ~a # b = 1100 0011
print(b) # 输出 -61
注意,取反操作的结果通常是一个负数,因为在 Python 中,整数的二进制表示采用的是补码形式。
- 左移(<<):此运算符将数字的二进制表示向左移动指定的位数。右侧空出的位用0填充。
例如:
a = 60 # 60 = 0011 1100
b = a << 2 # b = 1111 0000
print(b) # 输出 240
- 右移(>>):此运算符将数字的二进制表示向右移动指定的位数。左侧空出的位用符号位填充(正数填充0,负数填充1)。
例如:
a = 60 # 60 = 0011 1100
b = a >> 2 # b = 0000 1111
print(b) # 输出 15
这些位运算符在处理底层数据、优化性能和进行某些特定的算法操作时非常有用。