【逻辑运算符、位运算符】

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

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        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 相同为1 不同为0
    A|B = 0011 1101 有1为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
     */
        System.out.println(2<<3);
    }
}
上一篇:C++位运算符(与,或,异或,取反,左移,右移)


下一篇:Java逻辑运算符、位运算符