【问题标题】:& Bit operation in python [duplicate]python中的&位操作[重复]
【发布时间】:2020-07-06 05:14:44
【问题描述】:

在按位进行& 时,我认为通过指定数字会在必要的位置添加该数字,但在 python 中我得到以下信息:

>>> 4&2
0

>>> 4&1<<1
0

>>> 0b100 & 0b010
0

我认为这会给110 或6,但似乎我误解了&amp; 运算符。我在这里做错了什么或上面的误解?

【问题讨论】:

  • 你想要按位或'|'给你 0b110 或 6。

标签: python bit-manipulation bitwise-operators bit-shift


【解决方案1】:

按位&amp; 仅当所有操作数在该位置都有 1 时才会在位位置为您提供 1。你正在寻找按位|

【讨论】:

  • 谢谢。您如何指代“位位置”?它通常被称为“1”、“2”、“4”吗?或者 1st, 2nd, 3rd lsb,或者它通常是怎么称呼的?
  • 您从右到左读取位。右端的数字是最不重要的位,0b0101 = 1*1 + 0*2 + 1*4 + 0*8
  • @sergenp 知道了,所以在上面你会说“在一个位置有一个 1,在两个位置有一个 0”,或者你如何直接引用位的位置?
  • @samuelbrody1249 1st lsb 2nd lsb...(LSB0, LSB1...) 是您可以说的方式之一,正如您可以说 1st msb 2nd msb... (MSB0, MSB1 ...)
猜你喜欢
  • 1970-01-01
  • 2012-08-06
  • 2019-09-04
  • 2016-03-15
  • 1970-01-01
  • 2020-05-26
  • 2014-07-31
  • 1970-01-01
相关资源
最近更新 更多