Natknąłem się na (pozornie) bardzo dziwny przypadek.
Weź liczbę 2 ( 0b10) i zamaskuj ją za pomocą 1 ( 0b01)
Powinno to dać 0b00odpowiednik 0.
Jednak tutaj pojawia się pan Schrödinger:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Whisky. Tango. Fokstrot.
Nie jestem, co prawda, najostrzejszy, jeśli chodzi o operatory bitowe - więc może gdzieś strasznie się pomyliłem?
Jednak w Pythonie:
0b10 & 0b01 == 0 = True
0b10 & 0b01 != 0 = False
...więc?
var_dump(!(0b10 & 0b01))