Mi sono imbattuto in un caso (apparentemente) molto strano.
Prendi il numero 2 ( 0b10) e mascheralo con 1 ( 0b01)
Questo dovrebbe produrre 0b00che è equivalente a 0.
Tuttavia, ecco dove entra in gioco il signor Schrödinger:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Whisky. Tango. Foxtrot.
Certo, non sono il più acuto quando si tratta di operatori bit per bit, quindi forse ho sbagliato orribilmente, orribilmente da qualche parte?
Tuttavia, in Python:
0b10 & 0b01 == 0 = True
0b10 & 0b01 != 0 = False
...così?
0b0+1restituisce 2in alcune versioni, a causa di un bug del parser.
var_dump(!(0b10 & 0b01))