逻辑运算和位运算

本文详细介绍了Java中的逻辑运算符(&&、||、!)和位运算符(&、|、^、~),包括它们的用法、特点及注意事项。逻辑运算符主要用于boolean表达式的组合,位运算符则针对整数进行按位操作。文章还提到了位运算符的特殊用法,如与赋值运算符结合使用,并对比了逻辑运算与位运算在处理boolean值时的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要针对的是逻辑运算(&&、||、!)和位运算(&、|、^、~),关于移位预算,现在对开发来说基本不用,就不说了。

逻辑运算主要是针对多个boolean表达式来说的,即a==1&&b==2这种,就是说逻辑运算符左右都是boolean类型的表达式,这里!是个特例,它是一元运算符,只对右边boolean表达式取反,即!ture 变成了false。&&就是左右都为true结果为true,其他为false;||左右有一个是true结果就是true,否则为false。

位运算&、|、^是二元运算,~是一元运算,他们主要是针对整数数据进行按位操作,如1用八位2进制表示是00000001,1&1就是将左边的数字1和右边的数字1八位上的每一位进行布尔代数,然后结果转回来。若两个输入位都是1则&在输出位生成1,否则为0;若两个输入位至少有1个是1则|输出位为1;若两个输入位某一个是1,但不全是1,那^则在输出位就是1;~就是对位取反,因为2进制只有1、0即,~0就是1,~1就是0。

以上都是主要用法,下面说一下注意点。

1、位运算可以和=联合使用:&=,就是按位运算之后赋值,但是~因为是一元运算符不可以和=联合使用。

2、逻辑运算左右一定都是boolean表达式,不接受其他类型数据,而位运算则是对整数进行按位运算,只要有一边数据是float、doulbe都不行,但是char是可以的,并且boolean也是可以的效果和逻辑运算类似,但是~是不能参与boolean类型的运算的。当然位运算与逻辑预算在进行boolean运算时有点区别,就是逻辑预算有“短路”,但是位运算是没有的,即int a = 11, 逻辑运算true&&false&&a-->10 a的结果是11,没有减;而如果是true&false&(a=a-1)>10,则a的结果是10,进行自减运算了。

现在除了jdk里面有些使用了位运算,平常接触到位运算一般不多,而主要是使用逻辑运算。主要是在一些笔试或者面试会被问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值