逻辑运算符
运算符号
- 与运算 &&
- 或运算 ||
- 非运算 !
相关代码练习
public class Demo01 {
//逻辑运算符
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));//逻辑非运算,如果是真,则变为假;如果是假,则变为真
System.out.println("=========================");
//短路运算
int c = 5;
// boolean d = (c++<4)&&(c<4);
// boolean d = (c<4)&&(c++<4);//或运算如果前面是假的,则不会执行后面的,输出结果直接是假
// boolean d =(c>4)||(c++>4);
boolean d = (c++>4)||(c>4);//与运算如果前面是真,则不会执行后面的,结果直接为真
System.out.println(d);
System.out.println(c);
}
}
输出结果
位运算
位运算的效率极高!
运算符号
- &
- |
- ^
- ~
- (>>)
- <<
- (>>>)
例如
/*
* 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<<3) 其中<<3 是左移三位
* << 左移,*2 >> 右移,/2
*
* */
相关代码练习
int a = 0b0001_0110;
int b = 0b00;
System.out.println(a);
System.out.println(a<<2);