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)); // 逻辑与运算,两个变量都为真,则结果才为真
System.out.println("a || b:" + (a || b)); // 逻辑或运算,两个变量有一个为真,则结果为真
System.out.println("!(a && b):" + !(a && b));// 如果是真,则为假,如果为假,则为真
// 短路运算
int c = 5;
boolean d = c < 4 && c++ < 10; // c<4是false,后面的不会执行,所以c++不可能是6
System.out.println(d);
System.out.println(c);
}
}
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1111
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8怎么运算最快?
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);
}
}