❶ 2018年3月計算機二級考試java入門知識點:運算符和表達式
2018年3月計算機二級考試JAVA入門知識點:運算符和表達式
運算符指明對操作數所進行的運算。按操作數的數目來分,可以有一元運算符(如++、--),二元運算符(如+、>)和三元運算符(如?:),它們分別對應於一個、兩個和三個操作數。對於一元運算符來說,可以有前綴表達式(如++i)和後綴表達式(如i++),對於二元運算符來說則採用中綴表達式(如a+b)。按照運算符功能來分,基本的運算符有下面幾類:
1.算術運算符(+,-,*,/,%,++,--)
2.關系運算符(>,<,>=,<=,==,!=)
3.布爾邏輯運算符(!,&&,||)
4.位運算符(>>,<<,>>>,&,|,^,~)
5.賦值運算符(=,及其擴展賦值運算符如+=)
6.條件運算符(?:)
7.其它(包括分量運算符·,下標運算符[],實例運算符instanceof,內存分配運算符new,強制類型轉換運算符(類型),方法調用運算符()等)
本章中我們主要講述前6類運算符。
3.1算術運算符
算術運算符作用於整型或浮點型數據,完成算術運算。
一、二元算術運算符,如下表所示
運算符用法描述
+op1+op2加
-op1-op2減
*op1*op2乘
/op1/op2除
%op1%op2取模(求余)
Java對加運算符進行了擴展,使它能夠進行字元串的連接,如"abc"+"de",得到串"abcde"。我們將在第七章中講解。
與C、C++不同,對取模運算符%來說,其操作數可以為浮點數,如37.2=7.2。
二、一元算術運算符,如下表所示:
運算符用法描述
++op正值
--op負值
++++op,op++加1
----op,op--減1
i++與++i的區別
i++在使用i之後,使i的值加1,因此執行完i++後,整個表達式的值為i,而i的值變為i+1。
++i在使用i之前,使i的值加1,因此執行完++i後,整個表達式和i的值均為i+1。
對i--與--i同樣。
例3.1.下面的例子說明了算術運算符的使用
publicclassArithmaticOp{
publicstaticvoidmain(Stringargs[]){
inta=5+4;//a=9
intb=a*2;//b=18
intc=b/4;//c=4
intd=b-c;//d=14
inte=-d;//e=-14
intf=e%4;//f=-2
doubleg=18.4;
doubleh=g%4;//h=2.4
inti=3;
intj=i++;//i=4,j=3
intk=++i;//i=5,k=5
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}
其結果為:
C:>javaArithmaticOp
a=9
b=18
c=4
d=14
e=-14
f=-2
g=18.4
h=2.4
i=5
j=3
k=5
3.2關系運算符
關系運算符用來比較兩個值,返回布爾類型的值true或false。關系運算符都是二元運算符,如下表所示:
運算符用法返回true的情況
>op1>op2op1大於op2
>=op1>=op2op1大於或等於op2
<=op1<=op2op1小於或等於op2
==op1==op2op1與op2相等
!=op1!=op2op1與op2不等
Java中,任何數據類型的數據(包括基本類型和組合類型)都可以通過==或!=來比較是否相等(這與C、C++不同)。
關系運算的結果返回true或false,而不是C、C++中的1或0。
關系運算符常與布爾邏輯運算符一起使用,作為流控制語句的判斷條件。如
if(a>b&&b==c)
3.3布爾邏輯運算符
布爾邏輯運算符進行布爾邏輯運算,如下表所示:
op1op2op1&&op2op1||op2!op1
falsefalsefalsefalsetrue
falsetruefalsetruetrue
truefalsefalsetruefalse
truetruetruetruefalse}
·&&、‖為二元運算符,實現邏輯與、邏輯或。
·!為一元運算符,實現邏輯非。
·對於布爾邏輯運算,先求出運算符左邊的表達式的值,對或運算如果為true,則整個表達式的結果為true,不必對運算符右邊的表達式再進行運算;同樣,對與運算,如果左邊表達式的值為false,則不必對右邊的表達式求值,整個表達式的結果為false。
3.4位運算符
位運算符用來對二進制位進行操作,Java中提供了如下表所示的位運算符:
位運算符中,除~以外,其餘均為二元運算符。
操作數只能為整型和字元型數據。
3.4.1補碼
Java使用補碼來表示二進制數,在補碼表示中,最高位為符號位,正數的符號位為0,負數為1。補碼的規定如下:
對正數來說,最高位為0,其餘各位代表數值本身(以二進製表示),如+42的補碼為00101010。
對負數而言,把該數絕對值的補碼按位取反,然後對整個數加1,即得該數的補碼。如-42的補碼為11010110(00101010按位取反11010101+1=11010110)
用補碼來表示數,0的補碼是唯一的,都為00000000。(而在原碼,反碼表示中,+0和-0的表示是不唯一的,可參見相應的書籍)。而且可以用111111表示-1的補碼(這也是補碼與原碼和反碼的區別)。
3.4.2按位取反運算符~
~是一元運演算法,對數據的每個二進制位取反,即把1變為0,把0變為1。
例如:
0010101
~
1101010
注意,~運算符與-運算符不同,~21≠-21。
3.4.3按位與運算符&
參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0。即:
0&0=0,0&1=0,1&0=0,1&1=1
❷ java中float和double的取值范圍是什麼
float:4位元組(32bit),IEEE 754. 取值范圍:
[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。
double: 8位元組(64bit) ,IEEE 754. 取值范圍:
[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-324,1.79769313486231570e+308] 。
(2)java用來分配內存的運算符擴展閱讀
基本數據類型的特點,位數,最大值和最小值。
1、
基本類型:short 二進制位數:16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本類型:int 二進制位數:32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本類型:long 二進制位數:64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本類型:float 二進制位數:32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本類型:double 二進制位數:64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)