Ich bin auf einen (scheinbar) sehr seltsamen Fall gestoßen.
Nimm die Nummer 2 ( 0b10
) und maskiere sie mit 1 ( 0b01
)
Dies sollte ergeben, 0b00
was 0 entspricht.
Hier kommt jedoch Herr Schrödinger ins Spiel:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Whiskey. Tango. Foxtrott.
Ich bin zugegebenermaßen nicht der Schärfste, wenn es um bitweise Operatoren geht - also habe ich mich vielleicht irgendwo schrecklich, schrecklich geirrt?
In Python:
0b10 & 0b01 == 0
= True
0b10 & 0b01 != 0
= False
...so?
0b0+1
ausgewertet 2
.
var_dump(!(0b10 & 0b01))