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");