Day09

逻辑运算符

与 或 非

逻辑与

与(and):&& 有假为假

两个变量都为真,结果才为true

逻辑或

或(or): || 有真为真

逻辑或运算:两个变量有一个为真,则结果才为true

逻辑非

非(取反)!假为真,真为假

逻辑非运算:如果为假,则为真

短路运算

在第一个变量为假的情况下,并不会去执行后面的代码

package operator;

public class Demo05 {
    public static void main(String[] args) {
        //与(and)&& 有假为假      或(or)|| 有真为真     非(取反) ! 假为真,真为假
        boolean a = true;
        boolean b = false;
        //下面这三个运算能进行下去的一个必要条件是a为真;
        System.out.println("a && b: "+(a && b));//false 逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b: "+(a || b));// true 逻辑或运算:两个变量有一个为真,则结果才为true
        System.out.println("! (a && b): "+!(a && b));// true 逻辑非运算:如果为假,则变为真

        //短路运算 再第一个变量为假的情况下 程序并不会去执行后面的语句
        int c = 5;
        boolean d = (c<4) && (c++ < 4);
        System.out.println(d); //false
        System.out.println(c); //5 说明 (c++ < 4)没有执行

        //正常运算
        int e = 5;
        boolean f = (e>=5) && (e++<4);//执行到(e++<4)才判断得到false
        System.out.println(f); //false
        System.out.println(e); // 6
    }
}

位运算

位运算:每一位做运算
A = 0011 1100
B = 0000 1101
与 A&B=0000 1100(根据位来进行运算,两个对应位都为一才是一)
或 A/B=0011 1101(有一则一)
异或 A^B=0011 0001 (两个位相同则为0,不同则为1) 不进位二进制加法
非(取反) ~B =1111 0010

2*8怎么运算最快  2*2*2*2
效率高
<< 左移 *2
>> 右移 /2

计算机时不会除法乘法的,都是加法
0000 0000 0
0000 0010 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8

package operator;

public class Demo06 {
    public static void main(String[] args) {     
        System.out.println(2<<3);//2左移三位  16 2*2^3

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

struggling子聿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值