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

目录

区别一

区别二        


运算符的种类有很多,长相最相近的就要数位运算符和逻辑运算符了。

区别一

第一个区别就是运算顺序,位运算符的两端的表达式都要进行计算的,而逻辑运算符则不然,运算完第一个表达式之后如果已经判定整个表达式为真或假以后,便不再运算第二个表达式,这种现象又叫短路现象。以下程序演示了这一现象:

public class Calculate{

	public static void main(String [] args){
		double b=23.4;
		int a=88;
		if(a==88 || (b=90.0)==23.4);
		System.out.println(b);
	}
}

区别二        

第二个区别就是运算对象的不同,众所周知,计算机只识别二进制补码,位运算符便是先将两端的值运算成二进制补码再进行下一步运算的。

在c语言中,规定0为假,非0即为真,但java中并不是,逻辑运算符两端只接受布尔型数据,即只对true和false进行运算。以下是逻辑运算符的错误示范:

public class Calculate{

	public static void main(String [] args){
		double b=23.4;
		int a=88;
		if(a==88 || b=90.0);
		System.out.println(b);
	}
}

这个程序在c语言中肯定是没有问题的,给b赋值90.0后表达式值便为90.0,非0即为真,但在java中逻辑运算符却不能对其运算,编译结果如下:

而按位运算符可以对布尔型运算也可以对数值型进行运算,例如以下代码

public class Firday {

	public static void main(String[] args) {
		System.out.println(true & false);
		System.out.println(2 & 1);
	}
}

在二进制逻辑中true为1,false为0,所以true & false为0001 & 0000=0,所以结果为false

public class Firday {

	public static void main(String[] args) {
		System.out.println(true & false);
		System.out.println(2 & 1);
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值