運算子概念
針對常量和變數之間進行運算的符號
運算子的分類
算術運算子 賦值運算子 關係運算子(比較運算子) 邏輯運算子 位運算子 三目運算子
算數運算子
+在java當中含義很多
1.作為正數 +5 單目運算子 a++ 雙目運算子a+b 三目運算子 a?b:c
2.加法運算
3.字串連線符
技巧:
1.如何計算中防止精度丟失
2.如何分離中一個數的每一位
eg: 1234
分離個位: 1234 / 1 % 10 意思為:將1234除1然後對10取餘。
分離十位: 1234 / 10 % 10
分離百位: 1234 / 100 % 10
分離千位: 1234 / 1000 % 10
自增自減運算子
++ – 屬於單目運算子
++表示自增1
–表示自減1
分為
單獨使用
表示自增或者自減,沒有任何區別
參與運算
如果++放在運算元的左邊,就表示先自增再參與運算
如果++放在運算元的右邊,就表示參與運算,再自增或者自減1
賦值運算子
=:這個等於號再Java中表示賦值的意思,真正數學意義上的相等是 == 在JavaScript當中還有=== 表示型別和數值都相等
擴充套件賦值運算子
+=,-=,*=,/=,%= 注意:擴充套件運算子包含強制型別轉換
eg:a+=10; a=(a的型別)a+10;
比較運算子
關係運算子的結果是boolean型別
注意點:
1、 > 、 < 、 >= 、 <= 只支援左右兩邊運算元是數值型別
2、 == 、 != 兩邊的運算元既可以是數值型別,也可以是引用型別
邏輯運算子
作用:連結boolean型別的表示式,邏輯運算子兩邊必須是boolean型別的表示式
boolean型別的表示式1 邏輯運算子 boolean型別的表示式2 邏輯運算子 boolean型別的表示式3 邏輯運算子 boolean型別的表示式n
& | 按位與 | x&y | x和y 均為true,取值為true;否則取值false |
---|---|---|---|
| | 按位或 | x | y |
^ | 異或 | x^y | x和y的值相異,取值為true;否則取值false |
&& | 短路與 | x&&y | x和y 均為true,取值為true;否則取值false |
短路或 | |||
! | 非 | !x | x為false,取值為true;否則取值false |
& 和 && 的區別:
1.&表示按位與,無論什麼情況都會同時計算運算子兩邊的表示式
2.&&表示短路與,如果前面的表示式為false,那麼無論後面結果如何,都不會去計算後面表示式的值
3.&&開發中使用,&基本不用
4.&常用於位運算,位運算的效率比普通運算要高很多
! : 取反
當!的個數是奇數個的時候,結果相反
當!的個數是偶數個的時候,結果不變
條件運算子
| ?: |
格式:x?Y:Z
x表示式必須是boolean型別的表示式
執行流程:
首選計算X表示式的結果,如果X的結果為true,那麼整個表示式的結果就是Y的值
如果X的結果為false,那麼整個表示式的結果就是Z的值
位運算子
在計算機內部,資料是以二進位制編碼儲存的,Java變成語言允許我們對這些二進位制編碼進行位運算。
位操作符 | 使用方法 | 功能描述 |
---|---|---|
& | x&y | x和y按位進行與運算 |
| | x | y |
^ | x^y | x和y按位進行異或運算 |
~ | ~y | x按位進行非運算 |
>> | x>>y | 將x的二進位制編碼右移y位(前面填充的是符號位) |
<< | x<<y | 將x的二進位制編碼左移y位 |
>>> | x>>>y | 將x的二進位制編碼右移y位(前面的位填0) |
舉例:12的編碼是1100 ,7的編碼是0111,那麼:
12&7 結果的二進位制編碼為0100, 對應的值為4
12|7 結果的二進位制編碼為1111, 對應的值為15
12^7 結果的二進位制編碼為1011, 對應的值為11
因為
1100 1100 1100
&0111 |0111 ^0111
0100 1111 1011
如果對12進行移位操作:
12>>2; 結果的二進位制嗎為11,對應的值為3
7<<2; 結果的二進位制碼為11100,對應的值為28
本作品採用《CC 協議》,轉載必須註明作者和本文連結