J'ai rencontré un cas (apparemment) très étrange.
Prenez le numéro 2 ( 0b10) et masquez-le avec 1 ( 0b01)
Cela devrait produire l' 0b00équivalent de 0.
Cependant, voici où M. Schrödinger entre en jeu:
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
Whisky. Tango. Fox-trot.
Je ne suis, certes, pas le plus pointu en ce qui concerne les opérateurs au niveau du bit - alors peut-être que j'ai horriblement, horriblement mal quelque part?
Cependant, en Python:
0b10 & 0b01 == 0 = True
0b10 & 0b01 != 0 = False
...alors?
0b0+1évalue 2dans certaines versions, en raison d'un bogue de l'analyseur.
var_dump(!(0b10 & 0b01))