(Java基础)逻辑运算符和位运算符

一.逻辑运算符(&&)(||)(!)

简称:与(and) 或(or) 非(取反)

例子:

public class 1 {
    public static void main(String []args) {
        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));//如果是真,则变为假,如果是假,则变为真
    }
}

输出结果:

a&&b:false
a||b:true
!(a&&b):true
口诀:

&&与运算 有假为假

|| 或运算,有真为真

非运算,假为真,真为假

异或运算,同号为假,异号为真

-------某位B站大佬

短路运算
int c =9;
boolean d = (c<4)&&(c++<4); //9<4 所以第一个就错了,那后面的可以不用看,默认返回为false
System.out.println(d);
System.out.println(c);

输出结果:

false
9
二.位运算符(&) (|) (^) (~) (>>) (<<) (>>>)
/*
   A = 0011 1100
   B = 0000 1101

   A&B = 0000 1100  //A B进行比较,一位一位去比 如果两个都为1 则为1 反之都为0
   A|B = 0011 1101  //A B进行比较,如果两个都为0则为0,如果两个里有1,那么结果为1
   A^B = 0011 0001  //A B进行比较,两位相投为0,反之为1
   ~B  = 1111 0010  //与自己正好相反
   << 左移 *2
   >> 右移 /2
*/
例子:如何最快计算2*8
public class 2 {
    public static void main(String []args) {
    System.out.println(2<<3);
    }
}

输出结果:

16

原理解析:

二进制:
 0000 0000 0
 0000 0001 1
 0000 0010 2   //2<<3 2左移三位
 0000 0011 3
 0000 0100 4
 0000 1000 8
 0001 0000 16  //左移3位后二进制表示16
 ……………
 //2<<3 表示2后面再*3个2 2*2*2*2=16
 //4<<4 表示4后面再*4个2 4*2*2*2*2=64
三.结语

由于本人刚学习Java,基本上是把在学习过程中难理解的部分写成博客。既加深了自己的印象,也让刚学到这里不懂的同学不要踩坑,由于目前资历尚浅,本人写不出多么高深的东西,只是把自己所了解的通俗的表示出来,如果内容有什么不对,还请各位大佬指正!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值