猿问

布尔运算符的不同之处:&VS&和x-vsx

布尔运算符的不同之处:&VS&和x-vsx

我知道&&||但是什么是&|?请用一个例子向我解释一下。



月关宝盒
浏览 392回答 3
3回答

DIEA

这些是按位和按位或运算符。int a = 6; // 110int b = 4; // 100// Bitwise AND    int c = a & b;//   110// & 100// -----//   100// Bitwise ORint d = a | b;//   110// | 100// -----//   110System.out.println(c); // 4System.out.println(d); // 6感谢Carlos指出Java语言规范中的适当部分(15.22.1, 15.22.2)根据运算符输入的不同行为。实际上,当两个输入都是布尔值时,运算符被认为是布尔逻辑运算符,并且行为类似于条件-和(&&)和有条件的-或(||)操作人员,除非他们没有短路,所以在下列情况下是安全的:if((a != null) && (a.something == 3)){}这不是:if((a != null) & (a.something == 3)){}“短路”是指操作人员不一定检查所有条件。在上面的例子中,&&只在下列情况下才会检查第二个条件:a不是null(否则,整个语句将返回false,并且无论如何检查以下条件都是没有意义的),所以a.something不会引发异常,或被视为“安全”。这个&运算符总是检查子句中的每个条件,所以在上面的例子中,a.something可能会在a实际上是null值,引发异常。

当年话下

我想你说的是这两个操作符的逻辑含义,这里有一个表格-简历:boolean a, b;Operation     Meaning                       Note---------     -------                       ----    a && b     logical AND                    short-circuiting    a || b     logical OR                     short-circuiting    a &  b     boolean logical AND            not short-circuiting    a |  b     boolean logical OR             not short-circuiting    a ^  b     boolean logical exclusive OR  !a          logical NOTshort-circuiting        (x != 0) && (1/x > 1)   SAFE not short-circuiting    (x != 0) &  (1/x > 1)   NOT SAFE
随时随地看视频慕课网APP

相关分类

Java
我要回答