package operator;
public class Demo05 {
public static void main(String[] args) {
// 与 (and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(a&&b));//逻辑与运算: 两个变量都为真, 结果才为true
System.out.println("a || b: "+(b||a));//逻辑或运算: 两个变量有一个为真, 结果才为true
System.out.println("!(a && b): "+!(b&&a));//如果是真, 则变为假, 如果是假则变为真
//短路运算
int c = 5;
boolean d = (c < 4)&&(c++ < 4);//(c < 4)为假所以不在往下计算,没有执行c++ 自增故c还为5
System.out.println(d);
System.out.println(c);
}
}
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
--------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16 2*2*2*2
效率极高
<< *2
>> /2
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);
}
}