Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “操作员”&&引用;不能应用于byte、int、boolean_Java_Bit_Bit Shift - Fatal编程技术网

Java “操作员”&&引用;不能应用于byte、int、boolean

Java “操作员”&&引用;不能应用于byte、int、boolean,java,bit,bit-shift,Java,Bit,Bit Shift,关于如何比较组合位是否包含特定位的问题,我遇到了这个错误 int flag1 = 1 << 0; int flag4 = 1 << 5; int combined = flag1 | flag4; if (combined & flag1 == flag1) // <-- Operator & cannot be applied to int, boolean int flag1=1编译器在if语句中看到二进制运

关于如何比较组合位是否包含特定位的问题,我遇到了这个错误

    int flag1 = 1 << 0;
    int flag4 = 1 << 5;

    int combined = flag1 | flag4;

    if (combined & flag1 == flag1) // <-- Operator & cannot be applied to int, boolean

int flag1=1编译器在
if
语句中看到二进制运算符
&
,将其视为逻辑AND(因为它需要一个返回
布尔值的表达式),并检查参数的类型

它遇到一个
int
参数-
组合的
,和一个
布尔的
参数-
flag1==flag1
。由于它需要两个
boolean
参数(
&
运算符不能应用于
int
boolean
),因此它给出了一个错误

添加括号,以便按所需顺序计算运算符:

if ((combined & flag1 ) == flag1)

谢谢,哈哈,自从我编辑了我的问题后,我试着编辑了你的帖子。但就在您更新之后;)
AOE
应该是
flag1
flag4
。在我之前的问题中,每个人都给了我没有括号的答案,我想知道为什么…@MennoGouw Yep,我注意到了你的编辑并将其添加到了答案中。谢谢你的解释。我不熟悉位比较和运算,但我现在明白了。哦,还有一个Java运算符优先级问题。。。我也很困惑!(当然,它仍然比PHP好。
?:
:P)