辨析Java语言中逻辑运算符与位运算符的异同

逻辑运算符用于连接布尔型表达式。在Java中不同于数学的逻辑表达 3<x<5 ,java 中应该写成 x>3 && x<5  


"&" 和"&&" 的区别:
单个"&",左边无论真假,右边都进行计算。 
双个"&",左边为假,右边不进行计算。

"|"和"||" 的区别; 
单个"|",左边无论真假,右边都进行计算。 
双个"|",左边为真,右边不进行计算。 


"|"和"&" 做位运算 
二进制进行|位运算,只有0|0时候为0 ,其他为1,比如6|5 先把6和5换成二进制。6的二进制为110,5的二进制为101 那么用位运算0|0得0 只要有1得1,算出为111,111换成十进制为7,所有6|5等于7 
二进制进行&位运算,只有1&1得1,其他得0,同理可得6&5算出二进制得100,100换成十进制为4 


"^"异或运算和"~"反码 
任何相同二进制异或运算都得0,1^1=0,0^0=0,不相同的异或运算都得1,1^0=1,0^1=1。同理6^5的011 
那么011的十进制是3。提示一个数异或两次变回本身。比如6^5^5的 110,101,101。先得011,再得110所有又变回原来的数值,此技巧可以用来转换数值,不需要第3个变量即可两个变量值互转。

 
反码:二进制进行反码计算时。1变成0,0变成1。举例子~6,6的二进制是110在机器上补足32位在110之前补码0。那么反码为111.....001,此时的反码减去1得111.....111000,那么原反码减去相减的码得到0000....000111此时的十进制为-7那么加上原来减去的1得到-7+1就是~6了。

 
"<<"左移">>"右移">>>"无符号右移 
左移:空缺补0,被移除的高位丢弃,空缺位补0,比如32位二进制 0000....00011左移3位变成了0...00011xxx,则xxx补足000即可。规律左移是基数乘以2的移位幂次方,比如3<<2则是3*2*2也就是3乘以2的2次幂。 
右移:最高位是什么就补什么。高位是1补1,是0就补0.,规律左移是基数除以2的移位幂次方,比如3>>1则是3/2也就是3除以2的1次幂。 
无符号右移:无论高位是0还是1都补0

附逻辑运算符表:

运算符

用法

含义

&&

op1&&op2

逻辑与

||

op1||op2

逻辑或

!op

逻辑非

 

op1

Op2

op1&&op2

op1||op2

!op1

true

True

true

true

false

True

False

false

true

false

False

True

false

true

true

False

False

false

false

true

关系运算符表

运算符

用法(表达式)

含义

>

op1 > op2

大于

<

op1 < op2

小于

>=

op1 >= op2

大于等于

<=

op1 <= op2

小于等于

==

op1 == op2

等于

!=

op1 != op2

不等于

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值