简单介绍Java中的逻辑运算与位运算
逻辑运算
逻辑运算符:!、&&、||
优先级:!>&&>||
逻辑运算符的使用方法:
op1op2op1&&op2op1||op2!op1truetruetruetruefalsetruefalsefalsetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue
位运算
位运算符:
运算符用法含义规则&op1&op2按位与全1则1,否则为0|op1|op2按位非全0则0,否则为1^op1^op2按位异或相同为1,不同为0~~op1按位非遇1则0,遇0则1<<op1<< x左移运算符x为左移的位数>>op1>> x右移运算符x为右移的位数
使用位运算符运算的方式是对二进制进行按位运算的,比如:
a,b要进行“按位与”运算,先转化为二进制,计算结果是相同位上只有都为1时才为1,否则为0。
注意:
按位异或运算是可逆的,即如果对某个数据a进行两次相同的异或运算,则结果会还原为a,如对数值3进行两次和5的异或运算
3^5=6; 6^5=3
单从符号和含义上可以感觉到逻辑运算与位运算有很多相似的地方,下面说说两者的区别:
逻辑运算与位运算的区别
1.逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。
2.逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行。
比如: