为什么java / android允许按位&布尔变量和字符串之间

时间:2011-08-16 09:00:14

标签: java bitwise-operators bitwise-and

我被允许做一个按位&布尔变量和字符串之间。 没有编译错误!

结果如何?它是如何工作的。 根据我的理解,它不允许这种类型的按位操作。 这是一个错误或按位功能只考虑一点点而不关心类型吗?

1 个答案:

答案 0 :(得分:1)

可以bitwise &个字符,但不能使用字符串。 Exapmle:

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