(一見)非常に奇妙なケースに遭遇しました。
数2(0b10
)および1(0b01
)
これは0b00
は0と同等です。
ただし、ここでシュレーディンガー氏が登場します。
var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)
ウィスキー。タンゴ。 Foxtrot。
私は、確かに、ビット単位の演算子に関しては最も鋭敏ではありません-おそらく、どこかで恐ろしく、恐ろしく間違っているのでしょうか?
ただし、Pythonでは:
0b10 & 0b01 == 0
= True
0b10 & 0b01 != 0
= False
...そう?
あなたは実際にこれをやっています:
var_dump(0b10 & (0b01 == 0));
var_dump(0b10 & (0b01 != 0));
試してください:
var_dump((0b10 & 0b01) == 0);
var_dump((0b10 & 0b01) != 0);