逻辑运算符
注意短路情况
//逻辑运算符
public class demo03 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+ (b&&a)); //逻辑与运算:两个结果都为真,结果才为真
System.out.println("a||b:" + (a||b)); //逻辑或运算:两个结果有一个为真,结果为真
System.out.println("!(a&&b):" + !(a&&b)); //如果为真,结果变为假,结果为假,变为真
}
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4); //因为5<4,所以为假,不会进行后面的运算
System.out.println(d);
System.out.println(c);
位运算:
//位运算
public class demo04 {
/*
* 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
*
* 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
*
* */
public static void main(String[] args) {
System.out.println(2<<3); //16 2*2*2*2
System.out.println(8>>2); //2 8/2/2
}