Java学习笔记三:逻辑运算符,位运算符,三元运算符

一. 逻辑运算符
逻辑运算符有哪些呢?
&(并且) |(或) ^(异或) &&(短路与) ||(短路或) !(非)
逻辑运算符两边一般接boolean类型的表达式或者值,我们在数学运算中描述一个数的范围时一般会这样写:1<x<8,但在Java语言中要表示为x>1&x<8。

&:有false则判断为false,例如2>3&4<5,判断结果为false。

|:有true则判断为true,例如3>2|4>3,判断结果为true。

^:相同为false,不同为true(这一点我觉得可以类比于数字电路的异或逻辑,相同为0,不同为1)。

!:非false则true,非true则false。

&&:&&和&的判断结果是一样的,但&&具有短路效果,如果&&的前一端判断为false,则不需要进行后面一端,直接得出结果,这样更加方便。

||:同理||与|的判断结果也是一样的,但是如果||的前面一端判断为true,同样不需要判断后面一端。

我们在开发中通常用的有:&&,||,!
二. 位运算符
位运算符有哪些呢?
&(与) |(或) ^(异或) ~(按位取反) >>(右移) <<(左移) >>>(无符号右移)
需要注意的是:位运算符是对二进制的补码进行运算的。

&:与运算,在对于某一位的与运算中,只要两个数都为1,则该位的结果为1,否则为0。
在这里插入图片描述

|:或运算,在对于某一位的或运算中,两个数只要有一个为1,则该位的结果为1,否则为0。
在这里插入图片描述

^:异或运算,两个数相同为0,不同为1。
在这里插入图片描述
通过^运算我们可以进行两个值的交换,首先我们要明白位异或运算符的一个特点:一个数据被另一个数据位异或两次,该数是不变的。
例如:
a=a^b;
b=a^b;
a=a^b;
这就完成了a与b的值交换,当然进行值交换还有其他的方法,我们常用的就是利用中间变量交换:int t=0;
t=a;
a=b;
b=t;
这里不再一一介绍,主要体会^的这个特点。

左移运算:<<,移除多少位,被移除的高位丢弃,左边的空位补零。
例如x=00011000,x<<2=01100000
右移运算:>>,被移位的最高位为0,则右边的高位补0,最高位为1时,高位补1。
x=00011000,x>>2=00000110
x=10011000,x>>2=11100110
无符号右移:>>>,无论最高位为1还是0,空缺位都补零。

三.三元运算符
三元运算符的格式:
关系表达式 ?表达式1:表达式2

先执行关系表达式,如果为true,运算后的结果为表达式1,为false结果则为表达式2
例如:int x=a>b?1:0;如果a>b为true,则x=1;a>b为false,x=0。
利用三元运算符可以帮我们判断两个值的大小是否相等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值