可以像这样使用按位运算符(|、^、&)吗:
int a=23;
int b=42;
if(a==20^b==40){...};
尽管在 H.Schildt 的“Java, A Beginner's Guide”中,它说像这样的运算符同样具有逻辑性和按位性。
可以像这样使用按位运算符(|、^、&)吗:
int a=23;
int b=42;
if(a==20^b==40){...};
尽管在 H.Schildt 的“Java, A Beginner's Guide”中,它说像这样的运算符同样具有逻辑性和按位性。
是的,你可以,但我认为你不应该。
确保您的代码反映了您打算做什么。Java 有一个原生boolean
类型,可以处理true
orfalse
值。您可以将它们与逻辑&&
(“and”)、||
(“or”)结合使用,也可以使用一元!
(“not”)和所有比较运算符。当您使用这些运算符时,您是在告诉您正在检查条件。
另一方面,位运算符使用整数类型(即byte
, short
, int
, long
)。通过在这些类型上使用它们,您就是在告诉您正在执行计算。
即使您可以使用位运算符而不是逻辑运算符,代码维护人员也很难弄清楚您的意图是什么。
是的,可以使用这样的逻辑运算符。
请注意,如果操作数是整数类型,它们只是按位运算符。在您的示例代码中,操作数是boolean
(和的结果a==20
)b==40
......所以这意味着运算符是逻辑运算符而不是按位运算符。
(如果您认为我在迂腐,请考虑对象a + b
在哪里a
和b
是String
对象。在这种情况下,我们不会将+
运算符称为“加法”。)