j2se回顧總結(jié)(二)

1.操作符

(1)位

&、|、^、~

操作對象:整數(shù)

操作過程:將整數(shù)轉(zhuǎn)為二進制,再運算

&:一假皆假

|:一真皆真

^:相同為0,不同為1

~:取反

應(yīng)用:&:判斷整數(shù)是否是二次冪數(shù)。eg:int a=4;if(a&(a-1)==0){syso("a是二次冪數(shù)");}

&:判斷奇偶數(shù)。eg:int a=5;if(a&1==0){syso("是偶數(shù)");}

^:加密。給一個數(shù)異或一次是加密,異或兩次是解密。

^:判斷同異號。a&b>0則為同號,小于0為異號。

(2)位移運算

左位移:<<(乘以2的幾次冪)

右位移:>>(除以2的幾次冪)

無符號右移:>>>

原理:

正整數(shù)

左位移:5<<3:5*2^3(1<<3)

求出5的原碼,再去掉前3位數(shù)字,再到后面添加3個000

右位移:5>>3:5/2^3

求出5的原碼,再去掉后3位數(shù)字,再到前面添加3個000

負整數(shù)

左位移:-5<<3

求出-5的補碼,再去掉前3位數(shù)字,再到后面添加3個000

右位移:-5>>3

求出-5的補碼,再去掉后3位數(shù)字,再到前面添加3個111

無符號位移>>>:+5>>>3

求出5的原碼(或-5的補碼),再去掉后3位數(shù)字,再到前面添加3個000

注意點:在位移運算里,如果移動的位數(shù)大于所操作類型的位數(shù),需要對移動的位數(shù)%該類型的位數(shù)

(3)自增++、自減--

操作對象:變量(不能是具體的值)

原理:a++和++a的區(qū)別

相同點:都是對a進行加1

不同點:a++操作的是加1前的值,++a操作的是加1后的值

(4)邏輯運算

&、|、^、~

操作對象:boolean值(true、false)

(5)關(guān)系運算

>、<、=、>=、<=、!=

2.類型轉(zhuǎn)換

轉(zhuǎn)換規(guī)則:

a、boolean不參與類型轉(zhuǎn)換

b、括號里的類型不會相互轉(zhuǎn)換,只會自動轉(zhuǎn)換成括號外面的類型

(byte ?short ?char) ??int ?long ??float ??double

從左向右為自動轉(zhuǎn)換

從右向左為強制轉(zhuǎn)換。

強制轉(zhuǎn)換的類型會出現(xiàn)內(nèi)存溢出:eg

int a03=2100000000;

int a04=2100000000;

int result=a03+a04;

System.out.printIn(result);//內(nèi)存溢出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容