1. 程式人生 > >5運算子&與&&,|與||的區別

5運算子&與&&,|與||的區別

 &和 | 既是邏輯運算子也是位運算子,而&&和||只是邏輯運算子。

         一.(1)當&與&&同為邏輯運算子時,它們都用於連線兩個Boolean型別的表示式,當&和&&的兩端表示式同時為真時,表示式的結果為真,只要有一端為假,那麼表示式結果為假。從用法上來看,&和&&並沒有什麼區別,比如我們可以寫兩個表示式:

              3>5&3>2;       3>5&&3>2;

              兩個運算子都可以這麼用,但是不同的是,當在判斷這個表示式的真或假的時候,兩者的判斷次數不同;

             當使用&運算子: 計算機在判斷表示式的值的時候,先判斷3>5 的值為假,然後再判斷3>2的結果為真,於是最後的結果是 假&真 為假;

             但是當我們使用&&運算子的時候:計算機先判斷3>5 的值為假,此時表示式的結果一定為假,所以計算機就不再往下判斷了,判定表示式結果為假。

             邏輯運算子&與&&的區別是:

            & 無論左邊結果是什麼,右邊還是繼續運算;

            &&當左邊為假,右邊不再進行運算。

            但是兩者的結果是一樣的。

            (2)當|和||的兩端表示式同時為假時,表示式的結果為假,只要有一端為真,那麼表示式結果為真。

            所以同理,我們可以知道|與||的區別:

             | 無論左邊結果是什麼,右邊還是繼續運算;

            ||當左邊為真,右邊不再進行運算。

              但是兩者的結果是一樣的。

            所以&&和||是比較高效那麼一點點。

        二.&和 | 做位運算子,做二進位制位之間的與運算:

              比如 6&3=110&011=010=2

                       6|3=110|011=111=7