Я натрапив на (здавалося б) дуже дивний випадок.
Візьміть число 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)
Віскі. Танго. Фокстрот.
Я, правда, не найгостріший, що стосується побітових операторів - то, можливо, я десь жахливо, жахливо помилився?
Однак у Python:
0b10 & 0b01 == 0 = True
0b10 & 0b01 != 0 = False
...так?
Щось дивніше: у деяких версіях
—
Lily Chung
0b0+1оцінюється 2через помилку парсера.
var_dump(!(0b10 & 0b01))