java逻辑操作 条件操作 位运算

本文详细介绍了逻辑运算符(与、或、非)和条件运算符(&&、||、!)的基本概念及其真值表,并对比了逻辑运算与条件运算的区别。此外,还介绍了位运算符(右移、左移、无符号右移)的概念及应用,通过实例演示了如何快速进行数值运算。

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

(一)逻辑操作 &(与)    |(或)     ~(非)

非:

A~A
10
01

与:

ABA & B
111
100
010
000

或:

ABA | B
111
101
011
000

(二)条件运算   &&、||、!

非关系表:

A!A
truefalse
falsetrue

与:

ABA && B
falsefalsefalse
truefalsefalse
falsetruefalse
truetruetrue

或:

ABA || B
false false false
truefalsetrue
false truetrue
truetruetrue

逻辑运算和条件运算的区别

a  条件操作只能是布尔型的,而逻辑操作不仅可以操作布尔型的,还可以操作数值型

b   逻辑操作不会发生短路

下面解释一下短路的现象

如 if( 1==1 && 1==2 && 1==3)

代码从左到右开始执行,指定第一个表达式1==1是为true,因为是为true,然后就开始运算1==2,运算了第二个表达式过后结果如下:

true && false && 1==3

到了这个时候就不再运算下去了,因为在这种运算里面第二个表达式为false,这种情况就短路了,因为不论最后一个表达式为什么,最终返回就已经是false,短路现象在&&和||中都是常见的,

再如: if( 1==1 &1==2 & 1==3)

虽然第二个条件文件,但是程序还是会执行1==3.这样就不存在短路的现象


(三)  位运算符     “>> 右移”;“<< 左移”;“>>> 无符号右移” 

  注意:右移相当于是除,左移相当于就是乘,左移一位乘以2,左移二位乘以4,依此类推。   无论正数、负数,它们的右移、左移、无符号右移32位都是其本身,

比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5  

 如:-5>>3=-1   -5<<3=-40   5>>3=0   5<<3=40 
  -5>>>3=536870911

曾经有这样的一道面试题:用最快的方法算出2乘以8等于几?

答案:2<<3;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值