說起邏輯與,在Java中有兩種運算符,分別是&和&&.
對于這兩種與,在實際應(yīng)用有所不同,&用于對數(shù)字進(jìn)行按位與,而&&用于對兩個布爾表達(dá)式進(jìn)行與操作.
由上一句話可知,&用于兩個數(shù),如果是兩個表達(dá)式,必須先計算出兩個表達(dá)式.
而&&用于兩個布爾表達(dá)式,如果第一個表達(dá)式為假,則不計算第二個布爾表達(dá)式.這張現(xiàn)象稱為 邏輯短路 .
在實際應(yīng)用中,&&常出現(xiàn)在條件判斷語句中,而&則用取一串二進(jìn)制數(shù)中的某些數(shù).
下面,我們將利用&取出一個byte類型變量中的前4位以及后4位,并用0~F(十六進(jìn)制)表示.
假設(shè):這個變量的值為 195 11000011 則前4位為1100 0x0A 后四位為0011 0x03
/*
*取一個字節(jié)中的前4位與后四位
*/
class Get{
public static void main(String args[]){
byte number =(byte)195;
System.out.println(get(number));
}
public static String get(byte number){
// 00001111用于取出后四位
byte num=15;
char[ ] arr=new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int behind=number#
int front=(number>>4&num); //將高位移到低位再取值
return "前四位:"+arr[front]+" 后四位:"+arr[behind];
}
}
結(jié)果:
前四位:C 后四位:3