0

我可以在布尔变量和字符串之间进行按位 &。没有编译错误!

结果会怎样?它是如何工作的。据我了解,它不允许这种类型的按位运算。它是一个错误还是按位功能只考虑位而不关心类型?

4

1 回答 1

1

可以是bitwise &字符,但不能是字符串。示例:

public class BitwiseTest {
  public static void main(String[] args) {
    System.out.println(Integer.toBinaryString(0));
    System.out.println(Integer.toBinaryString(1));
    System.out.println(Integer.toBinaryString(2));
    System.out.println(Integer.toBinaryString(1&2));
    System.out.println(Integer.toBinaryString(1&'2'));
  }
}

印刷 ...

0
1
10
11
110011

而这不会编译:

System.out.println(Integer.toBinaryString(1&"my String"));

编译器输出:

$ javac BitwiseTest.java 
BitwiseTest.java:10: operator & cannot be applied to int,java.lang.String
System.out.println(Integer.toBinaryString(1&"my String"));
                                           ^
1 error
于 2011-08-16T09:06:27.753 回答