Me he encontrado con un caso (aparentemente) muy extraño.
Tome el número 2 ( 0b10
) y enmascarelo con 1 ( 0b01
)
Esto debería producir lo 0b00
que es equivalente a 0.
Sin embargo, aquí es donde entra el señor Schrödinger:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Whisky. Tango. Fox.
Es cierto que no soy el más agudo cuando se trata de operadores bit a bit, así que tal vez me haya equivocado horriblemente en alguna parte.
Sin embargo, en Python:
0b10 & 0b01 == 0
= True
0b10 & 0b01 != 0
= False
...¿entonces?
php
bit-manipulation
bitwise-operators
operator-precedence
Danny Kopping
fuente
fuente
var_dump(!(0b10 & 0b01))
0b0+1
evalúa2
en algunas versiones, debido a un error del analizador.Respuestas:
Realmente estás haciendo esto:
Tratar:
fuente
0b10 & (0b01 == 0)
por qué alguien aplicaría bit a bit con un tipo de información sí no.