為什么a=1,(a&2!=0)為真。
人還是要學(xué)點什么
2017-03-10 11:16:58
TA貢獻6條經(jīng)驗 獲得超5個贊
!=的運算優(yōu)先級低于&,先計算表達式a&2
a=1(賦值),1&2的結(jié)果為1(真),1(真)不等于0(假)的結(jié)果為真
所以最終結(jié)果為真
補充:默認認為這是一個逗號表達式,返回最后一個表達式的值。
TA貢獻1條經(jīng)驗 獲得超1個贊
a&2 邏輯"與"運算,001(1的二進制)、020(2的二進制),得到結(jié)果為二進制 000,未轉(zhuǎn)換為10進制0,所以最后得到結(jié)果為真。當(dāng)改為 a=1, b= a&2; b!=0(運算符判斷前,b已轉(zhuǎn)為10進制0)為假。
1&2 = 0;
TA貢獻3593條經(jīng)驗 獲得超0個贊
TA貢獻8條經(jīng)驗 獲得超4個贊
這個要看運算符的優(yōu)先級,不知道你用的什么語言,假定js吧。
!=的優(yōu)先級高于&,所以先運算2!=0,返回true;再運算a&true,返回1。
就是說,最后返回的是數(shù)值,而非邏輯真假。
舉報