二进制AND运算符

1 python binary

A = 0b111 (7)

B = 0b1010 (10)

A & B = 0b10 (2)
Run Code Online (Sandbox Code Playgroud)

第一个数字都是1,所以你得到1.
然后你有1和0所以你得到0然后你又得到1和1.

但答案显然是0b10,因此出于某种原因被忽略了.(以及B中的最后0)

有人可以向我解释为什么会这样吗?

che*_*ner 12

您需要从最低有效位(右侧写入的位)开始,而不是最高位."第一个"数字A是0,而不是1; 当你看起来位数太少时,你需要提供零.

    A = 0b0111
    B = 0b1010
A & B = 0b0010
Run Code Online (Sandbox Code Playgroud)

就像常规小数一样,10 + 7 = 17,而不是80.