&:按位操作符(“與”),將兩個表達式的值按二進制位展開,對應的位(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都可以進行邏輯運算,但是&到底是不是邏輯運算符?網上的答案版本有很多差異,待我明天問問老師滴吧,今天就帶着疑惑先把帖子發了。(如果有大神可以爲小妞解惑,萬分感激呢)
(如果這個明白了,那麼|與||也就明白了,,,一個好奇的小妞)