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:" + (a||b)); //逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a && b):" + !(a&&b)); //如果是真,则变为假,如果是假,则变为真
//短路运算
int c1 = 5;
boolean d1 = (c1<4)&&(c1++<4);
System.out.println(d1);
System.out.println(c1); //c = 5
int c2 = 5;
boolean d2 = (c2<4)&(c2++<4);
System.out.println(d2);
System.out.println(c2); //c = 6
}
}
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
----------------------------
A&B=0000 1100 //两个都是1才是1
A|B=0011 1101 //有一个为1就是1
A^B=0011 0001 //相同为0,否则为1
~B =1111 0010 //0就是1,1就是0
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);
}
}