Java中的逻辑运算符与位运算符

一、Java中的运算符

Java中的运算符分为几大类:

      算术运算符:+、-、*、/、%、++、- -

      赋值运算符:=、+=、-=、*=、/=等等

      位运算符:~、&、|、^

                 逻辑运算符:!、&&、||

      关系运算符:>、<、>=、<=、= = 、!=

      移位运算符>>、<<、>>>(无符号右移)

对于这些运算符的不同名字与分类其实很好理解,不同种类的运算对象不同罢了。而本篇集中阐述的是Java中的逻辑运算符与位运算符。

二、Java中的逻辑运算符

逻辑运算符,说白了就是对布尔型数据进行运算的。因此满足如下规律:

运算符用法含义
&&

op1&&op2

逻辑与
||

op1||op2

逻辑或

!op

逻辑非

运算规则:

op1op2op1&&op2op1||op2!op1
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue

三、位运算符

所谓位运算符,把人搞的一头雾水,“位”到底是个什么玩意儿呢?“位”既然修饰“运算符”,那么就说明“位运算符”是按位运算的,按“位”运算,前提是有“位”,这个为“位”从哪来呢?这就是位运算符的高级之处了,位运算是将数据先转化为二进制数补码形式,再逐位(bit)按规则计算。

也i运算符的符号及规则:

“按位”运算符“&”,规则:全1则1,否则为0

“按位”运算符“|”,规则:全0则0,否则为1。 

“按位”运算符“~”,规则:遇1则0,遇0则1。

“按位异或”运算符“^”,规则:相同为0,不同为1。  

ps:按位异或很奇妙,使用两次则还原:

      3 ^ 5 = 6;

      6 ^ 5 = 3;

四、位运算符与逻辑运算符的区别

1.逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。

2.逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行。

代码示例及运行结果:

逻辑或:

public class Example9{
	
	public static void main(String [] arg){
		int y = 10;
		int z = 10;
		if((y=0)==0 || (z=0)==0){                 //短路
			System.out.println(z); 
		}
	}
}

位运算按位或:

public class Example9{
	
	public static void main(String [] arg){
		int yy = 10;
		int zz = 10;
		if((yy=0)==0 | (zz=0)==0){                 
			System.out.println(z); 
		}
	}
}

注意比较z和zz的输出结果,会发现“逻辑或”只执行了前半条语句,也就是后半条语句被“短路”了,而“按位或”同时执行了“|”两边的语句。

以上,就是Java中逻辑运算符与位运算符概念的具体阐述与比较。

 

 

    

 

 

 

 

 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值