java 位运算符,java位运算符号
&& 称为逻辑与运算,仅当两个数都为真(即true)时,结果才为真
|| 称为逻辑或运算,其中一个数为真(即true)时,结果为真
! 称为逻辑非运算,将原数取反
ABA&&BA||B!Atruetruetruetruefalssetruefalsefalsetruefasefalsetruefalsetruetruefalsefalsefalsefalserue位运算符(整型和字符型)~ “按位非” ~A 将A按比特位取反,规则:遇1则0,遇0则1
& “按位与” A&B 按A与B的比特位取与, 规则:相对位全1则1,否则为0
| “按位或” A|B 按A与B的比特位取或, 规则:相对位全0则0,否则为1
^ “按位异或” A^B 按A与B的比特位取异或, 规则:相对位相同为0,否则为1
AB~AA&BA|BA^B110110100011011011001000逻辑运算符与为运算符的区别1、逻辑运算符是逻辑运算,仅能用于boolean(布尔型)运算,而位运算符是比特位运算,可用于整型和字符型,也可以用作逻辑运算;
2、逻辑运算符有短路的情况,就是(表达式1)||(表达式2);如果 表达式1 为true,则会直接给出结果true,而 表达式2 不会执行,直接跳过;同理,(表达式1)&&(表达式2),如果 表达式1 为false,则会直接给出结果false,而 表达式2 还是不执行,会直接跳过;而 & 和 | 则两个表达式都会执行并进行判断;如下图:
左边是代码,右边是执行结果,我们可以轻易看出 || 后半部分没有执行,所以第一次输出b,b的值还是0;而 | 的前、后两部分都执行了,故输出的a和b都是1; && 和 & 也是这样。
参考链接:
https://blog.csdn.net/Liuxiaoyang1999/article/details/90575185