J'ai rencontré un cas (apparemment) très étrange.
Prenez le chiffre 2 (0b10
) et masquez-le avec 1 (0b01
)
Cela devrait produire 0b00
ce qui équivaut à 0.
Cependant, voici où intervient M. 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-trot.
Je 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 tort quelque part?
Cependant, en Python:
0b10 & 0b01 == 0
= True
0b10 & 0b01 != 0
= False
...alors?
Vous faites en fait ceci:
var_dump(0b10 & (0b01 == 0));
var_dump(0b10 & (0b01 != 0));
Essayer:
var_dump((0b10 & 0b01) == 0);
var_dump((0b10 & 0b01) != 0);