逻辑运算符


逻辑运算符

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: "+(b||a));//逻辑或运算: 两个变量有一个为真, 结果才为true
        System.out.println("!(a && b): "+!(b&&a));//如果是真, 则变为假, 如果是假则变为真


        //短路运算
        int c = 5;
        boolean d = (c < 4)&&(c++ < 4);//(c < 4)为假所以不在往下计算,没有执行c++ 自增故c还为5
        System.out.println(d);
        System.out.println(c);
    }
}

package operator;

public class Demo06 {
    public static void main(String[] args) {

        /*
        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
        >>   /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);
    }
}

相关