2011-08-16 43 views
0

我被允許在布爾變量和一個字符串之間執行按位&。 沒有編譯錯誤!爲什麼java/android允許在一個布爾變量和一個字符串之間進行按位&佈局

結果會是什麼?它是如何工作的。根據我的理解,它不應該允許這種類型的按位操作。 它是一個錯誤或按位功能認爲只有位的interms和不關心類型?

+0

一個例子會有所幫助。 – skaffman

+3

你有沒有試過看出你的假設是否屬實? –

+0

請顯示一些代碼!這不可能! – adarshr

回答

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 
+0

感謝您的回答。它回答了我的問題。我會自己檢查一下布爾值。 –

+0

對於布爾值,它非常簡單:true評估爲1,false爲0.但仍然令人困惑...... –

+1

我明白了。其短路和非短路操作..謝謝分配。 –

相關問題