Python 位运算符

问题描述 投票:0回答:1

我遇到了这个应用示例,我理解了按位运算符符号的含义和结果值。然而,我在这部分感到困惑,因为我认为我们只使用这些运算符与 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
python bit-manipulation bitwise-operators
1个回答
0
投票

按位运算符对数字的二进制表示执行:

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

© www.soinside.com 2019 - 2024. All rights reserved.