逻辑运算符及位运算符
逻辑运算符
&& 逻辑与
|| 逻辑或
! 取反
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a&&b=" + (a && b)); //逻辑与运算只有两个变量都为真,结果才为真
System.out.println("a||b=" + (a || b)); //逻辑或运算只要有一个为真,结果才为真
System.out.println("!(a||b)=" +! (a || b)); //对结果取反,如果为真则为假,反之。
//&& || 具有短路运算的特性。
}
}
//位运算符 & | ^ ~ << >> >>>
public class Demo2 {
public static void main(String[] args) {
A = 0011 1100
B = 0000 1101
A&B 0000 1100 //A与B比较,如果都为1,才为1
A|B 0011 1101 //A与B比较,只有两个都为0,才为0
A^B 0011 0001 //A与B比较,如果相同则为0否则为1
~B 1111 0010 //对B按位取反
/*这里引入一道实践面试题 2*8如何运算最快
2*8=16 可以理解为2*2*2
由下面的二进制可以看出2向左移一位变成8,8向左移一位变成16
<<1=*2 >>1=/2
//结果为16
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}

浙公网安备 33010602011771号