Java运算符初学者

运算符

与(and) 或(or) 非(取反)

public class Dem06 {
    //逻辑运算符
    public static void main(String[] args){
        //与(and) 或(or) 非(取反)
        boolean a =true;
        boolean b =false;
        System.out.println("a && b: "+(b&&a));//逻辑与运算:两个变量都为真 结果输出true
        System.out.println("a | | b: "+(a||b));//逻辑或运算:两个变量有一个为真 结果才为true
        System.out.println("! (a && b):"+! (a&&b));//逻辑非运算 如果是真,则变为假,如果假 则变为真
        //短路运算
        int c =4;
        boolean d=(c<4)&&(c++<4);
        System.out.println(c);
        System.out.println(d);

    }
}

当c=3时 则输出c=4 d 为true

c=4时 由于c<4不成立 因此输出c=4 d为false(假)

逻辑语言

&&为与

||为或

!为取反

比如我设定

boolan a =true
boolan b =true
    //则(“a&&b:”+(b&&a));输出为真
    //("a | | b: "+(a||b));输出为真
    //("! (a && b):"+! (a&&b));输出为假
    //输出a= false b=false
    //则&&=假
    //||=假
    //!为真

短路运算会造成的原因则为

当我设定c跟d 时 c 不满足d的前提 则不计算后一步的运算 直接输出c为我设置的大小 而d 输出则为假

int c =4;
        boolean d=(c<4)&&(c++<4);
        System.out.println(c);
        System.out.println(d);


位运算

public class Dem07 {
    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 是1则为0 是0则为1

         2*8=16 2*2*2*2
         << = *2
         >> = /2
         0000 0001   1
         0000 0010   2
         0000 0011   3
         0000 0100   4
         0000 0101   5
         0000 0110   6
 1        0000 0111   7
         0000 1000   8
         0001 0000   16
         */
        System.out.println(56<<84156465);

    }
}

比如我输出5<<2

就会等于20

因为<<已经×2了 后面又加了个2

实则是5×4

posted @ 2020-10-27 23:15  sbman  阅读(59)  评论(0)    收藏  举报