"&"

Java逻辑运算符"&","&&","|","||"

冷暖自知 提交于 2019-12-04 22:14:22
逻辑运算符用于连接布尔型表达式。在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