Java 这是什么意思;如果(<;整数>;2)";?
如果(但我将其写入java,编译器不接受它,请帮助我!这是什么意思?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不会隐式地将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中不起作用的原因是Javaif
语句只接受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
。在这种情况下,它是等效的,但是应该避免给新手帖子带来混淆的答案。