&和&&的區別,邏輯運算符和位運算符

&:按位操作符(“與”),將兩個表達式的值按二進制位展開,對應的位(bit)按值進行”與”運算,結果保留在該位上。

eg1:17&18

對應的二進制就是00010010

                            &00010011

                 00010010

該位只要有一個值是0結果就是0,否則就是1.

如果兩數位數不同,則較短數高位補零,再運算。

 

&&:邏輯操作符(“與”),計算兩個表達式同時成立的“真值”

eg2: (1>2)&&(2>3)計算結果是false

&&具有短路的功能(即一旦能夠明確無誤地確定整個表達式的值,就不再計算表達式餘下部分了),即如果第一個表達式的值是false,,後面的表達式不會執行。

 

eg3: (1>2)&(2>3)計算結果也是false

但是&不具有短路的功能,即使(1>2)就可以判斷出整個的執行結果,但是(2>3)也會得到執行

 

所以,同樣的語句,使用&&要比&的效率高

其實小妞還是有疑惑的,既然eg2和eg3都可以進行邏輯運算,但是&到底是不是邏輯運算符?網上的答案版本有很多差異,待我明天問問老師滴吧,今天就帶着疑惑先把帖子發了。(如果有大神可以爲小妞解惑,萬分感激呢)

(如果這個明白了,那麼|與||也就明白了,,,一個好奇的小妞)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章