【Java】逻辑运算符的相关理解和运算

逻辑运算符

逻辑运算符只对布尔型操作数进行运算,并返回一个布尔类型数据(真true或假false)。

运算符

含义

解释

&&

与(AND)

两个操作数皆为真,结果才为真

&

||

或(OR)

两个数只要有一个为真,运算结果才为真

|

非(NOT)

返回与操作数相反的布尔值

 

举个例子:

1>0&&3>0;//结果为true

1>0||3>8;//结果为true

!(1>0);//结果为false

 短路逻辑运算符的使用

public class Short {
	public static void main(String[] args) {
		int i = 5;
		boolean flag = (i<3)&&(i<4);//&&短路,i<4系统不做运算
		System.out.println(flag);
		
		flag = (i>4)||(i>3);//||短路,i>3系统不做运算
		System.out.println(flag);
	}

}

程序运行结果:

程序中,第3行,由于i=5,所以(i<3)为false,对于&&逻辑运算符,其操作数之一为false,其返回值必然为false,故再确定其左边的操作数为false,对于后一个运算操作数(i<4)无需计算,也就是&&短路。

类似的,对于“||”运算符,由于i=5,所以(i>4)为true,对于||逻辑运算符,其操作数之一为true,整体返回值必然为true,故再确定其左边的操作数为true,对于后一个运算操作数(i>3)无需计算,也就是“||”短路。

位运算符:

位运算符含义
&按位与
|按位或
^按位异或
~按位取反
<<左位移
>>右位移
>>>无符号右位移

 

截张图来理解

 

 

按位与和按位或运算:

public class 按位与和或 {
	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		System.out.println("x=");
		int x = s.nextInt();
		System.out.println("y=");
		int y = s.nextInt();
		System.out.println("x与y的结果为:");
		System.out.println(x&y);
		System.out.println("x或y的结果为:");
		System.out.println(x|y);
	}
}

 

输出结果为:

代码解析:

第10行,实现与操作,相“与”的两位,如果全部为1结果才是1,有一个为0结果就是0。

13的二进制: 0000000 0000000 0000000 0000110

17的二进制:  00000000 00000000 00000000 00000111
“与”的结果:  00000000 00000000 00000000 00000101

所以输出的结果为5。
第12行,实现或操作,位“或”的两位,如果全为0才是0,有一个为1结果就是1。

13的二进制:  00000000 00000000 00000000 00001101
7的二进制:  00000000 00000000 00000000 00000111

“或”的结果:  00000000 0000000 0000000 00001111所以输出的结果为15。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值