運算符與表達式
運算符分類:
0.賦值運算符 =
1.算數運算符 + - * / %
2.比較運算符 < > == <= >= !=
3.邏輯運算符 & | ! && ||
4.位運算符 & | ~ << >> ^
5.一元運算符 ++ -- += -= *= /= %=
6.二元運算符
7.三元運算符 變量=條件?值1:值2;
*邏輯運算符 & | ! && || (與或非)
*注意:邏輯運算符左右兩邊所存放的變量或者表達式必須是布爾類型的
*運算公式:
非:真非為假,假非為真
與:
true 與 true = true
true 與 false = false
false 與 true = false
false 與 false = false
或:
true 或 true = true
true 或 false = true
false 或 true = true
false 或 false = false
&和&&的區別
&(單位與):不管‘與’符號左邊的邏輯運算結果是真還是假,都會判斷符號右邊的結果,耗時。
&&(短路與):如果‘與’符號左邊的結果為假,就不會再判斷右邊的運算結果,因為最終的結果已經確定,為假。省時
|和||的區別
|(單位或):不管‘或’符號左邊的邏輯運算結果是真還是假,都會判斷符號右邊的結果,耗時。
||(短路或):如果‘或’符號左邊的結果為真,就不會再判斷右邊的運算結果,因為最終的結果已經確定,為真。省時
*位運算符 & | ~ << >> ^
運算時:將 1 看成 true ,0看成false
& | ~ 與邏輯運算符公式一樣
1010-0110 = 166
0110-1010 = 106
1010-0110
&0110-1010
---------------
0010-0010 = 34
1010-0110
|0110-1010
---------------
1110-1110=238
1010-0110
~0101-1001=89
-167
<< 左移
8<<3=64 8對應的二進制數項做移動三個單位
相當於乘法運算 8 * 8=64
0000-1000
0100-0000=64
>> 右移
9 >> 2 = 2 9對應的二進制數向右移動兩個單位
相當於除法運算 9 / 4=2
0000-1001
0000-0010 = 2
異或 ^
異或:相同為假,不同為真
true 異或 true = false
true 異或 false = true
false 異或 true = true
false 異或 false = false
結論:任何數與0異或,結果都等於這個數。
相同的兩個數之間異或,結果為0
多個值之間相互異或時,異或滿足交換律。
一元運算符 ++ -- += -= *= /= %=
指,只經過一次運算就完成賦值和運算結果的功能
++ 自增 每次自增1
i++和++i
==>i=i+1;
i++與++i的區別
++i先自增再運算
i++先運算再自增
-- 自減
i-- --i ==>i=i-1;
自增 10 ==>i=i+10;
+=:自增n
i+=10;==>i=i+10;
*三元運算符 變量=條件?值1:值2;
經過三次運算得到結果:
1.判斷條件是否成立(條件運算符)
2.如果條件成立,取值1,否則取值2 。
3.將取出的值賦值給變量(賦值運算符)