!
(邏輯非)大於*/%+-
(算數運算符)
測試內容 !0*6
步驟 如果*
優先級高應該執行0*6
,得0
,邏輯非運算之後爲1
;反之,結果爲6
。邏輯非是單目運算符,邏輯非運算符也比較特殊,個人感覺像是()括號運算符,在使用單目運算符是相當於(!0)*6
,因爲!只能操作一個變量或者常量,改變!0*6
這四個的位置{!6*0
0*!6
6*!0
}也得不到什麼有用的組合。所以最後應該還是邏輯非優先級大。
代碼演示
==
(等於運算符)大於!=
(不等於運算符)
測試內容 1!=1==0
步驟 如果 ==
大於!=
先計算 1==0
,得0,在計算1!=0
,得1。反之,先計算1!=0
,得1,然後1==0
,得0。
代碼演示
!=
大於 &
(按位與)
測試內容 3&5!=0
步驟 如果!=
運算符優先級高,先計算5!=0
,結果爲1
,然後與3按位與,3的二進制是11
,1的二進制是1
,最終結果是1
。反之,5的二進制是101
,結果是1
,1!=0
結果是假,最終結果是0
。
代碼演示
&
大於^
測試內容 2^2&2
步驟 如果過&
優先級高,先算2&2
,結果是10
(二進制),然後是10^10
,結果是11
。反之,先算2^2
,結果是11
,然後11&10
,結果是10
。
代碼演示