小编kry*_*y23的帖子

按位“与”运算是否会在二进制表示形式前添加零?

当我使用按位与运算符( &) 与数字 1 来确定数字 x 是奇数还是偶数时(x & 1),解释器是否会根据 x 的二进制表示形式更改 1 的二进制表示形式?例如:

  • 2 & 1 -> 10 & 01 -> 然后按位比较
  • 5 & 1 -> 101 & 001 -> 然后按位比较
  • 100 & 1 -> 1100100 & 0000001 -> 然后按位比较

它是否会在 1 的二进制表示后追加 0 来执行按位与运算?

查看cpython 实现,看起来它是根据正确参数的大小来比较数字的。所以在这种情况下,上面的例子实际上是有效的:

  • 2 & 1 -> 10 & 1 -> 0 & 1 -> 然后按位比较
  • 5 & 1 -> 101 & 1 -> 1 & 1 -> 然后按位比较
  • 100 & …

python bit-manipulation cpython

5
推荐指数
1
解决办法
355
查看次数

标签 统计

bit-manipulation ×1

cpython ×1

python ×1