java 中的逻辑与错误。无法执行二进制 AND
Logical AND error in java. Not able to do binary AND
我是 java 的新手,我正在学习按位运算符。当我 运行 以下代码时,它会抛出错误。我不知道这是什么错误。我用 &
替换了 &&
它仍然给出错误。
class Main{
public static void main(String []args){
int n=5, k=3;
if (n && (1<<(k-1)!=0)) //THIS LINE GIVING ERROR
System.out.println("Mahima! bit is set");
else
System.out.println("Mahima! bit is not set");
}
}
下面是错误。
Line 6: error: bad operand types for binary operator '&&' [in Main.java]
if (n && (1<<(k-1)!=0))
^
first type: int
second type: boolean
当我使用单个 & 时出现以下错误
Line 6: error: bad operand types for binary operator '&' [in Main.java]
if (n & (1<<(k-1)!=0)) //THIS LINE GIVING ERROR
^
first type: int
second type: boolean
首先,你把&&
运算符改成&
是对的。
&&
是 逻辑和 运算符。它需要两个 boolean
和 returns 一个 boolean
.
&
是 按位和 运算符。它需要两个 int
和 returns 一个 int
.
将 &&
更改为 &
后,您必须添加一些括号,因为 !=
的优先级高于 &
:
if ((n & (1<<(k-1))) !=0)
System.out.println("Mahima! bit is set");
else
System.out.println("Mahima! bit is not set");
我是 java 的新手,我正在学习按位运算符。当我 运行 以下代码时,它会抛出错误。我不知道这是什么错误。我用 &
替换了 &&
它仍然给出错误。
class Main{
public static void main(String []args){
int n=5, k=3;
if (n && (1<<(k-1)!=0)) //THIS LINE GIVING ERROR
System.out.println("Mahima! bit is set");
else
System.out.println("Mahima! bit is not set");
}
}
下面是错误。
Line 6: error: bad operand types for binary operator '&&' [in Main.java]
if (n && (1<<(k-1)!=0))
^
first type: int
second type: boolean
当我使用单个 & 时出现以下错误
Line 6: error: bad operand types for binary operator '&' [in Main.java]
if (n & (1<<(k-1)!=0)) //THIS LINE GIVING ERROR
^
first type: int
second type: boolean
首先,你把&&
运算符改成&
是对的。
&&
是 逻辑和 运算符。它需要两个 boolean
和 returns 一个 boolean
.
&
是 按位和 运算符。它需要两个 int
和 returns 一个 int
.
将 &&
更改为 &
后,您必须添加一些括号,因为 !=
的优先级高于 &
:
if ((n & (1<<(k-1))) !=0)
System.out.println("Mahima! bit is set");
else
System.out.println("Mahima! bit is not set");