位运算符逻辑运算符区别

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

位运算符包括1、&位与符 ;2、|位或符 ;3、^位异或符; 4、~位取反符。
逻辑运算符包括:1、&&逻辑与; 2、||逻辑或; 3、!逻辑非。

可以看到,这两种运算符在外观上就有某些相似之处。而在实际使用中,我们应该了解两者的相同点与区别,正确的使用它们。

位运算符
位运算是完全对位方面的操作。我们知道,整型数据在内存中以二进制的形式表示,左边最高位是符号位,最高位是0表示正数,若为1则表示负数;负数采用补码表示。这样就可以对整型数据进行按位运算。
1、按位与运算符为“&”,为双目运算符。按位与运算的运算法则是:如果两个整型数据a、b对应为都是1,则结果为才是1,否则为0。
2、按位或运算的运算符为“|”,为双目运算符。按位或运算的运算法则是:如果两个操作数对应高位都是0,则结果为才是0,否则为1。
3、按位异或”运算的运算符是“^”,为双目运算符。按位异或运算的运算法则是:当两个操作数的二进制表示相同(同为0或同为1)时,结果为0,否则为1。
4、按位取反运算也称为“按位非”运算,运算符为“~”,为单目运算符。“按位取反”就是将操作数二进制中的1修改为0,0修改为1。

逻辑运算符
在日常生活的交流中,我们就经常用到与、或、非以及与他们类似的表达来阐述比较复杂的关系。逻辑运算符有如下运算顺序:
表达式1 && 表达式2
表达式1真:执行表达式2;
表达式1假:执行表达式1。
表达式1 || 表达式2
表达式1真:执行表达式1;
表达式1假:执行表达式2。

两者区别
1、||当左边为真时,就不运行右边的表达式了 ;|当左边为真,还是会运算右边的表达式 。&&当左边为假时,就不会运算右边的表达式 ;&当左边为假时,还是会运算右边的表达式。由此我们可以看到逻辑运算符的“短路”情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行。

短路的一个例子:

int y=10;
  int x=10;
  if((x=0)==0||(y=0)==0)
  System.out.println(y);//短路,y=0没有运算;输出10

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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值