1. 程式人生 > 其它 >java基礎09:邏輯運算子 、位運算子

java基礎09:邏輯運算子 、位運算子

邏輯運算子:

package com.anjiaxiaopihai.base.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:"+((a||b)));//邏輯或運算: 如果兩個變數有一個為真,結果為true
        System.out.println("!(a && b):"+!((a&&b)));//如果是真,則變為假,如果是假,則變為真

        //短路運算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);//false
        System.out.println(c);//5   (c<4)&&(c++<4);中的(c<4)為假,執行在(c++<4)前就已經終止了,所以C返回的資料為5.
                             // 如果繼續執行的話c = c + 1; c=c;最終C就是6了。

    }
}

位運算子:

package com.anjiaxiaopihai.base.operator;
//位運算子:
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        -------------------------------
        A&B = 0000 1100                   //與:如果對應位兩個都為1,則為1,否則就為0
        A|B = 0011 1101                   //或:如果對應位兩個都為0,則為0,否則就為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
        0000 0000    0



         */


    }
}