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

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

位运算是将数据先转化为二进制数补码形式,再逐bit)按规则计算。

~是按位非,把0变成1,把1变成0

&是按位与,全1则1,否则是0

|是按位或,全0则0,否则是1

^是按位异或,相同为0,不同为1

如:a=3,b=5,则:

a       0000  0000  0000  0011

b       0000  0000  0000  0101

~a     1111  1111  1111  1100

a&b   0000  0000  0000  0001

a|b    0000  0000  0000  0111

a^b   0000  0000  0000  0110

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

逻辑运算符只能针对boolean类型进行逻辑运算,运算结果仍为boolean类型

&&:全为true才为true,否则为false

||:全为false才false,否则为true

!:把false 变为true,把true变为false

三、位运算符与逻辑运算符的区别:

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

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

以此代码为例:

public class ShuJu{
	public static void main(String[]args){
        int w=10,x=9;
		if((w=0)==0||(x=0)==0){
			System.out.println(x);
		}
        int ww=10,xx=9
		if((ww=0)==0)|((xx=0)==0){
			System.out.println(xx);
		}
	}
}

输出结果x=10,因为右边被短路了,xx=0,因为位运算不存在短路。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值