为什么Python对于这个&操作返回0?

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

我正在学习Python,当我尝试的时候,我正在搞乱操作

>>> 14 & 16
0
>>> 0b1110 & 0b10000
0

在我的脑海里它看起来像这样:

>>> 0b1110 & 0b10000
1

根据我的理解,& 运算符比较位形式的 2 个数字,看看每个位是否为 1,如果是,则将 1 分配给返回值。

那么为什么会返回 0 而不是 1?

python operators bitwise-operators
1个回答
0
投票

位是 right 对齐的(根据需要在左侧填充 0),因此

14 & 16

进行比较
   1110
& 10000
  -----
  00000

不是

   1110
&  10000
   -----
   100000  (16, not 1)
© www.soinside.com 2019 - 2024. All rights reserved.