说起逻辑与,在Java中有两种运算符,分别是&和&&.
对于这两种与,在实际应用有所不同,&用于对数字进行按位与,而&&用于对两个布尔表达式进行与操作.
由上一句话可知,&用于两个数,如果是两个表达式,必须先计算出两个表达式.
而&&用于两个布尔表达式,如果第一个表达式为假,则不计算第二个布尔表达式.这张现象称为 逻辑短路
.
在实际应用中,&&常出现在条件判断语句中,而&则用取一串二进制数中的某些数.
下面,我们将利用&取出一个byte类型变量中的前4位以及后4位,并用0~F(十六进制)表示.
假设:这个变量的值为 195 11000011
则前4位为1100 0x0A
后四位为0011 0x03
/*
*取一个字节中的前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];
}
}
结果:
前四位:C 后四位:3