我遇到了这个应用示例,我理解了按位运算符符号的含义和结果值。然而,我在这部分感到困惑,因为我认为我们只使用这些运算符与 0 和 1。(不是整数......除非有一些我不熟悉的转换)。非常感谢以下内容是如何得出的:
x = 4
y = 1
a = x & y
b = x | y
c = ~x
d = x ^ 5
e = x >> 2
f = x << 2
print(a, b, c, d, e, f) # 0 5 -5 1 1 16
按位运算符对数字的二进制表示执行:
x
十进制为 4,二进制为 100
y
十进制为 1,二进制为 001。
&
运算符对每个相应的位对执行按位与运算,因此a = x & y
相当于100 & 001
,相当于二进制的000,所以你的输出是0。
其余操作相同:
b = 100 | 001
,等于二进制的101,即十进制的5
c = ~100
--> 二进制为 001,十进制为 1
d = 100 ^ 101
--> 二进制为 001,十进制为 1
e = 100 >> 2
--> 二进制为 001,十进制为 1
f = 100 << 2
--> 二进制为 10000,十进制为 16