java中的运算符_java中的运算符
一:概述:
Java的運算符,分為四類:
算數運算符、關系運算符、邏輯運算符、位運算符。
算數運算符(9):+ ?- ?* ?/ ?% ?++ ?--
關系運算符(6):== ?!= ?> ?>= ?< ?<=
邏輯運算符(6):&& ?|| ?! ?^ ?& ?|
位運算符(7):& ?| ?~ ?^ ?>> ?<< ?>>>
-----------------------------------------------------------------------------------------------------------
Java基本數據類型:
數值類型:
整型:byte、short、int、long
非整型:double、float
非數值類型:char[字符]、boolean[布爾]
二:算術運算符:
注:算數運算符操作數必須是數值類型。
分為一元運算(只有一個操作數)、二元運算(有兩個操作數,運算符在兩個操作數之間)
①”++“和”--“運算符,只允許用于數值類型的變量,不允許用于表達式中;"++"和”--“可以用于數值變量之前或者之后;
兩處使用差別:
”++“和”--“用于數值變量之前,在賦值操作中,先對被”++“或”--“操作變量值先加1或者先減1,然后在進行其他的操作;
"++"和”--“用于數值變量之后,在賦值操作中,先用被”++“或”--“的操作變量值進行其他的操作,然后在對其值加1或者減1。
例如:
1 packagenums;2
3 public classTest1 {4 public static voidmain(String[] args) {5 int num1=20,num2=20;6 System.out.println(++num1);7 System.out.println(num2++);8 }9 }
輸出的結果為:
用“--”的效果和“++”是一樣的
②:二元運算符,加'+',減'-',乘'*',除'/',求余'%'。
在算數運算符中,”+“,”-“,”*“,”/“完成加減乘除四則運算,%是求兩個操作數相除后的余數。運算規則和數學運算基本相同,在算數運算中,計算時按照從左向右的順序計算,乘除和求余優先于加減,不同的是,程序中的乘運算符不可省略,在數學中可寫為”y=2x“而程序中必須寫為”y=2*x“。
當二元運算的兩個操作數的數據類型不同時,運算結果的數據類型和參與運算的操作數的數據類型中精度較高(或位數較長)一致。
1 packagenums;2
3 public classTest2 {4 public static voidmain(String[] args) {5 int num1=10;6 int num2=22;7 double num3=52.2;8 System.out.println("加:"+num1+num2);9 System.out.println("減:"+(num1-num2));10 System.out.println("乘:"+num2*num3);//會提升精度
11 System.out.println("除:"+num3/num1);12 System.out.println("求余:"+num1%num2);13 }14 }
從低精度向高精度轉換byte 、short、int、long、float、double低精度到高精度會自動轉換,而高精度到低精度則要類型強制轉換。
1 int a = 7;2 double b = 5.33;3 b =a;4 a = (int) b;
二:關系運算符:
關系運算符用于比較兩個數值之間的大小,其運算結果為一個邏輯類型(boolean布爾類型)的數值。
等于'==',不等于'!=',大于'>',大于等于'>=',小于'
1 packagenums;2
3 public classTest3 {4 public static voidmain(String[] args) {5 System.out.println("9.5<8 :"+(9.5<8));6 System.out.println("8.5<=8.5:"+(8.5<=8.5));7 System.out.println("a~z:"+((int)'a')+"~"+((int)'z'));8 System.out.println("A~Z:"+((int)'A')+"~"+((int)'Z'));9 System.out.println("'A' < 'a':"+('A' < 'a'));//字符'A'的Unicode編碼值小于字符'a'
10 }11 }
判斷相等的符號是兩個等號,而不是一個等號,這個需要特別小心。比較運算符是程序設計中實現數據比較的基礎,也是很多邏輯實現的基礎,在程序邏輯中,經常通過比較一定的條件,來判斷后續的程序該如何執行。
三:邏輯運算符:
邏輯運算符要求操作數的數據類型為邏輯型,其運算結果也是邏輯型值。
邏輯與'&&',邏輯或'||',邏輯非'!',邏輯異或'^',邏輯與'&',邏輯或'|'
注:
&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。
對于&來說,如果左側條件為false,也會計算右側條件的值,而對于&&來說,如果左側的條件為false,則不計算右側的條件,這種現象被稱作短路現象。 所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。 對于&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。
對于 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。 所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其后的計算過程。
異或相同為false,相反則為true。
在程序設計時使用&&和||運算符,不建議使用&和|運算符。
四:位運算符:
位運算是以二進制位為單位進行的運算,也就是說,會把十進制數先轉換為二進制進行運算;
①十進制二進制的相互轉化:
②左移(<
1 packagenums;2
3 public classTest4 {4 public static voidmain(String[] args) {5 System.out.println(5 << 2);//運行結果是20
6 }7 }
運行過程:先把5轉換為二進制?? 0101
然后進行位移,向左位移2位
也就是00010100
轉換為十進制為20;
②右移(>>):
1 packagenums;2
3 public classTest4 {4 public static voidmain(String[] args) {5 System.out.println(5 << 2);//運行結果是20
6
7 System.out.println(5 >> 2);8 }9 }
運行原理和左移是一樣的;
③、無符號右移( >>> )
運行原理:得到二進制數
取反值
加1
1 packagenums;2
3 public classTest5 {4 public static voidmain(String[] args) {5 System.out.println(5>>>2);6 }7 }
④:按位與(&)
只有兩個操作數對應位同為1時,結果為1,其余全為0.
例如:
⑤:按位或(|)
只有兩個操作數對應位同為0時,結果為0,其余全為1.
⑥:異或(^)
當運算符兩邊不同的時候結果為1,兩邊相同的時候結果為0 這就是傳說中的同性相殺,異性相吻。
8^6=1000^0110=1110=14
⑦:按位非(~)
非運算符理解起來很容易的,就是按位取反
總結
以上是生活随笔為你收集整理的java中的运算符_java中的运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机扩容后mysql无法使用_VMWA
- 下一篇: 交通信用卡还款宽限期