我正在学习Python,当我尝试的时候,我正在搞乱操作
>>> 14 & 16
0
>>> 0b1110 & 0b10000
0
在我的脑海里它看起来像这样:
>>> 0b1110 & 0b10000
1
根据我的理解,& 运算符比较位形式的 2 个数字,看看每个位是否为 1,如果是,则将 1 分配给返回值。
那么为什么会返回 0 而不是 1?
位是 right 对齐的(根据需要在左侧填充 0),因此
14 & 16
与 进行比较
1110
& 10000
-----
00000
不是
1110
& 10000
-----
100000 (16, not 1)