2011-08-16 10 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

ブール値の場合、それはかなりシンプルです:真は1に評価され、0には偽ります。しかし、それはまだ混乱しています... –

+1

私はそれを得ました。その短絡と非短絡操作..ありがとう。 –

関連する問題