代码改变世界

Java逻辑运算符、位运算符

2021-07-08 16:51  summer的小西瓜  阅读(27)  评论(0)    收藏  举报
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)); // 逻辑与运算,两个变量都为真,则结果才为真
        System.out.println("a || b:" + (a || b)); // 逻辑或运算,两个变量有一个为真,则结果为真
        System.out.println("!(a && b):" + !(a && b));// 如果是真,则为假,如果为假,则为真

        // 短路运算
        int c = 5;
        boolean d = c < 4 && c++ < 10;   // c<4是false,后面的不会执行,所以c++不可能是6
        System.out.println(d);
        System.out.println(c);
    }
}

package operator;

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1111

        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B  = 1111 0010

        2*8怎么运算最快?
        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);
    }
}