014 逻辑运算符、位运算符

逻辑运算符

  • &&:逻辑与运算符,左右表达式结果为真才为真,否则为假
  • ||:逻辑或运算符,左右表达式结果有真即为真,否则为假
  • !:逻辑非运算符,对表达式结果取反,表达式为真即为假,为假即为真
boolean a = true;
boolean b = false;
// 左右表达式结果为真才为真,故结果为:false
System.out.println(a && b);
// 左右表达式结果有真即为真,故结果为true
System.out.println(a || b);
// 对表达式结果取反,故结果为false
System.out.println(!a);

短路运算

在使用“&&”时,如果左表达式执行结果为true,则会执行右表达式,如果左表达式执行结果为false,则不再执行右表达式,而是直接返回false。

在使用“||”时,如果左表达式执行结果为false,则会执行右表达式,如果左表达式执行结果为true,则不再执行右表达式,而是直接返回true。

这种类似于惰性的处理方法被称为短路运算。

位运算符

  • &:位与运算符,位与位都为1时才为1
  • |:位或运算符,位与位有1时就为1
  • ~:位非运算符,位为0时为1,位为1时为0
  • ^:异或运算符,位与位相等时为1,不等时为0
  • <<:左移运算符,将二进制数向左移位,低位补0
  • >>:右移运算符,将二进制数向右移位,高位补0
  • >>>:无符号右移运算符,将二进制数向右移位,高位补0,符号位也会被移位
// 位与位都为1时才为1,故结果为:2
System.out.println(0b0110 & 0b0011);
// 位与位有1时就为1,故结果为:7
System.out.println(0b0110 | 0b0011);
// 位为0时为1,位为1时为0,故结果为:-7
System.out.println(~0b0110);
// 位与位相等时为1,不等时为0,故结果为:5
System.out.println(0b0110 ^ 0b0011);
// 将二进制数向左移位,低位补0,故结果为:12
System.out.println(0b0110 << 1);
// 将二进制数向右移位,高位补0,故结果为:-3
System.out.println(-0b0110 >> 1);
// 无符号右移运算符,将二进制数向右移位,高位补0,符号位也会被移位,故结果为:2147483645
System.out.println(-0b0110 >>> 1);

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值