JavaSE 23 Java基础语法 → 逻辑运算符&&位运算符

4.8 逻辑运算符和位运算符


4.8.1 逻辑运算符

  1. && 并且
  2. || 或者
  3. ! 非(取反)
    C/C++ 里面 认为 0 和 1 就是 假和真,即使C++ 中加入了 bool 类型,也没有改变这样的思想和规则。所以太过于灵活,比如 5 && 0 是可以比较的,但这其实是不对的,从严格的方面来讲,逻辑的比较,两侧至少 必须是 "逻辑类型"的,而 5 和 0 单纯的来看 只是 数字而已!在这里插入图片描述在这里插入图片描述

4.8.2 短路运算(逻辑中的短路)

  • 短路运算:因为 && 和 || 两个逻辑运算符在判断逻辑的时候,为了提高效率,我们只要可以确定最终逻辑值的结果!那么我们就不再进行 条件的判断了!
int c = 5;
boolean d = c<4 && c++<4;
System.out.println(c);
System.out.println(d);

这样就会形成短路运算的情况,因为 c < 4 是 false,而 && 只要有一个条件是 false,整体的结果 就是 false,所以 后面的 c++<4 这个条件是不会被执行的,也不会被判断的!那么 c 的值 就一直 都是 “5”!
在这里插入图片描述


4.8.3 位运算符(二进制专属运算符)

我们都知道 位是计算机中最小的单位,是由 0 1 二进制数 构成的,而 位运算 也是 对 二进制数 进行的 特殊运算。

  • & 并运算符:只有 1 & 1 = 1 剩下的情况 都是 0
  • | 或运算符:只要有 1 存在结果就是 1。必须两个0 同时存在,结果才能是 0
  • ^ 异或运算符:当 两个数不一样的时候 结果是 1,当两个数 一样的时候,结果是 0
  • ~ 取反运算符:1 变 0,0 变 1
  • >> 右移运算符:1001 右移一位 0100,若有符号位则 最左边 添补 符号位。
  • << 左移运算符:1001 左移一位 0010
  • >>> 无符号位右移:不管是正、是负。都自动添补 0,结果 表面上 看起来都是正数!在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值