Eu me deparei com um caso (aparentemente) muito estranho.
Pegue o número 2 ( 0b10
) e mascare-o com 1 ( 0b01
)
Isso deve produzir o 0b00
que é equivalente a 0.
No entanto, é aqui que entra o Sr. Schrödinger:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Uísque. Tango. Foxtrot.
Reconheço que não sou o mais perspicaz quando se trata de operadores bitwise - então talvez eu tenha me enganado terrivelmente, terrivelmente errado em algum lugar?
No entanto, em Python:
0b10 & 0b01 == 0
= True
0b10 & 0b01 != 0
= False
...tão?
Porém, algo mais estranho:
—
Lily Chung
0b0+1
avalia para 2
em algumas versões, devido a um bug do analisador.
var_dump(!(0b10 & 0b01))