逻辑运算符
package base;
public class HelloWorld {
//逻辑运算符
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));
//短路运算
/*假设第一个条件为假,则不会执行第二个条件,
因此c++没有被执行,c的值还是5*/
int c=5;
boolean d=(c<4)&&(c++<4);//c++运算是先赋值后自增
System.out.println(d);//d=false
System.out.println(c);//c=5
}
}
位运算符
package base;
public class HelloWorld {
//位运算符
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
//A&B :每一位相互比较,全为1,则为1,否则为0
A&B=0000 1100
//A|B : 每一位相互比较,全为0,则为0,否则为1
A|B=0011 1101
//A^B : 每一位相互比较,相同为0,不同为1
A^B=0011 0001
//~B :将B中所有位数全部取反
~B=1111 0010
*/
/*快速实现2*8 2*2*2*2
位运算:效率极高!
<< >>
<< 表示向左移动 *2
>> 表示向右移动 /2
0000 0000 表示十进制0
0000 0001 表示十进制1
0000 0010 表示十进制2
//2往左移动3为就是0000 0010-> 0001 0000的过程,因此输出16
0000 0011 表示十进制3
0000 0100 表示十进制4
0000 1000 表示十进制8
0001 0000 表示十进制16
0010 0000 表示十进制32
*/
System.out.println(2<<3);
}
}