使用按位&在if语句中

时间:2012-04-08 15:43:03

标签: java c if-statement bit-manipulation operator-keyword

在C中,我可以写一个if语句

if (firstInt & 1)

但是当我尝试在Java中执行相同操作时,编译器会告诉我“不兼容的类型”并说我需要boolean而不是int。有没有办法用Java编写那个C代码?

2 个答案:

答案 0 :(得分:22)

以下任何一项都适合您:

if ((firstInt & 1) != 0)
if ((firstInt & 1) > 0)
if ((firstInt & 1) == 1)

答案 1 :(得分:1)

在C中,可以隐式使用整数表达式作为布尔表达式(虽然我认为这是一个坏主意),其中零为false且任何非零值为真。

在不允许的Java中,您必须通过使用比较运算符将整数结果与某个其他整数值或表达式进行比较,使表达式显式为boolean。