ฉันเจอเคสที่แปลกมาก (ดูเหมือน)
ใช้หมายเลข 2 ( 0b10
) และ bitmask ด้วย 1 ( 0b01
)
สิ่งนี้ควรสร้าง0b00
ซึ่งเทียบเท่ากับ 0
อย่างไรก็ตามนี่คือสิ่งที่ Mr Schrödingerเข้ามา:
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
...ดังนั้น?
var_dump(!(0b10 & 0b01))