Java 这是什么意思;如果(<;整数>;2)";?

Java 这是什么意思;如果(<;整数>;2)";?,java,c++,if-statement,int,Java,C++,If Statement,Int,如果(但我将其写入java,编译器不接受它,请帮助我!这是什么意思?“这是因为java不会隐式地将0大小写为false 在C++中, 0 < /COD>是 false ,所以 1和2 =0,这是false。< /P> 在Java中,1&2仍然是0,但0不能被视为false,因此编译器告诉您存在类型不匹配。如果((整数&2)!=0),则必须是 Java不能像在C++中那样将正整数识别为true,将0识别为false 否则,它将测试是否设置了右侧的第二位,即它是1。这称为“按位and”。它接受两个参

如果(但我将其写入java,编译器不接受它,请帮助我!

这是什么意思?
“这是因为java不会隐式地将
0
大小写为
false

在C++中,<代码> 0 < /COD>是<代码> false <代码>,所以<代码> 1和2 =0,这是false。< /P> 在Java中,
1&2
仍然是0,但0不能被视为
false
,因此编译器告诉您存在类型不匹配。

如果((整数&2)!=0)
,则必须是

Java不能像在
C++
中那样将正整数识别为
true
,将
0
识别为
false

否则,它将测试是否设置了右侧的第二位,即它是1。

这称为“按位and”。它接受两个参数并返回一个整数值,其中两个参数中只有1位设置为1,其余全部为0


在Java中不起作用的原因是Java
if
语句只接受
boolean
值。

它是一个按位运算符,给您第二位

例如:

# In binary:
1 = 0001    & 2: 0000
2 = 0010    & 2: 0010
3 = 0011    & 2: 0010
4 = 0100    & 2: 0000
5 = 0101    & 2: 0000
6 = 0110    & 2: 0010

&
符号采用两个给定数字的按位AND。
例如,取二进制的5和7:
0101&0111=0101

更多信息


当在IF语句中使用时,编译器基本上会检查结果数字是否为0并返回false,或者它是否是任何其他数字,然后返回true。

测试右侧的第二位以查看它是否打开。这是一个按位and运算符。您可以通过谷歌来了解它的更多功能。(注意右边的第三位不是用3测试,而是用4测试。)@user2521581-看看我的帖子。添加
>0
。它不是
>0
,它是
!=0
。在这种情况下,它是等效的,但是应该避免给新手帖子带来混淆的答案。