我遇到一個(貌似)很奇怪的情況。優先級和掩碼操作
乘坐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
...這樣嗎?
我在PHP但在C,C++,你可以簡單地寫爲'的var_dump(不(0b10和0B01) )' –
Something weirder but:'0b0 + 1' evaluate to'2' in some versions,due to a parser bug。 – ikdc