2021-07-24

逻辑运算符

与(and)或(or)非(取反)
与运算:两边都为真,结果才为真,有一边为假就为假。
或运算:两边都为假,结果才为假,有一边为真就为真。
非运算:把结果取反,比如:结果为真,那么就取假。

短路运算:与运算中,前面的为假,那么后面的就不再执行。

    //  与(and)  或(or)  非(取反)
        boolean a = true;
        boolean b = false;
        boolean c = false;
        boolean d = true;

        System.out.println("a && b:"+(b&&a));   //逻辑与运算: 两个变量都为真,才为true
        System.out.println("a || b:"+(a||b));   //逻辑或运算: 两个变量都有一个为真,则结果就为true
        System.out.println("! (a && b):"+!(a||b));  //如果是真: 则变为假,如果是假: 则变为真

        //短路运算
        int w1 = 5;
        boolean e1 = (w1<4)&&(++w1<4);
        /*这个逻辑与运算它检测到前面"c<4",而c的值是5
          5肯定大于4,条件不成立,为假
          而与运算是要两个变量都为真,才为真
          所以不会去执行后面的条件
         */
        System.out.println(e1);
        System.out.println(w1);

        System.out.println((a&&d)&&(b&&c));

位运算

A&B:两边都为1,那么就为1
A|B:两边都为0,那么就为0
A^B:比较的数相同,就为0
~A:取反
~B:取反

        /*
        A = 0011 1100
        B = 0000 1101

A&B: 比较的时候两个都为1,就为1  0000 1100
A|B: 比较的时候两个都为0,就为0  0011 1101
A^B: 比较的时候两个相同,就为0   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 0101  5
        0000 0110  6
        0000 0111  7
        0000 1000  8
        0001 0000  16

          */
        System.out.println(2<<3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值