python中的&位操作[重复]

Posted

技术标签:

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

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

>>> 4&2
0

>>> 4&1<<1
0

>>> 0b100 & 0b010
0

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

【问题讨论】:

你想要按位或'|'给你 0b110 或 6。 【参考方案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 ...)

以上是关于python中的&位操作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Python 位操作 1

位操作

加快 Python 中的位串/位操作?

Python 和 Java 中的位操作

位运算

位操作系列2-leetcode136(c++/python)