逻辑运算符或按位运算符(Java)

时间:2013-10-05 05:36:11

标签: java bit-manipulation logical-operators

可以像这样使用按位运算符(|,^,&):

int a=23;
int b=42;
if(a==20^b==40){...};

虽然在H.Schildt的“Java,A Beginner's Guide”中,它表示像这样的运营商同样符合逻辑和按位。

2 个答案:

答案 0 :(得分:2)

是的,你可以,但我认为你不应该。

确保您的代码反映了您打算做的事情。 Java具有原生boolean类型,可用于truefalse值。您可以将它们与逻辑&&("和"),||("或")结合使用,也可以使用一元 - !( " not"),以及所有比较运算符。 当您使用这些运算符时,您告诉您正在检查条件

另一方面,位运算符正在使用整数类型(即byteshortintlong)。通过在这些类型上使用它们,您告诉您正在执行计算

即使您可以使用位运算符而不是逻辑运算符,代码维护者也很难弄清楚您的意图。

答案 1 :(得分:0)

是的,可以使用这样的逻辑运算符。

注意,如果操作数是整数类型,它们只是按位运算符。在您的示例代码中,操作数是booleana==20b==40的结果)...这意味着运算符是逻辑运算符而不是按位运算符。

(如果您认为我是迂腐的,请考虑a + b其中abString个对象。我们不会调用{{1}在该上下文中运算符“添加”。)