2010-12-13 8 views
0

このJavaコードの出力は何ですか?その理由は何ですか?他の言語の束でjava |演算子は何のためですか?

int a = 5 | 3 ; 
System.out.println(a); 
+0

出力は何を? – Josh

+5

はこの宿題ですか? – SingleNegationElimination

+3

それを実行して調べる。その後、前の質問への最良の答えのいくつかを受け入れてください。 –

答えて

3

「ビット単位のOR」と呼ばれます。

5 |ビット3は、列挙型は、Java 5にappered前に、それはいくつかの定数を作るための一般的なパターンであっ2及び使用ビットごとのパワーに等しいか、または両方の特性を発現させるために

0101 
or 
0011 
---- 
0111 

に等しいです。たとえば、fontをBOLD、ITALIC、UNDERLINEDとするとします。そして、あなたは定数を持っている場合:

その後
public class FontStyle { 
    final int BOLD = 1; 
    final int ITALIC = 2; 
    final int UNDERLINED = 4; 

    private int fontStyle; 

    public void setFontStyle(int style) { 
     this.fontStyle = fontStyle; 
    } 

    public boolean hasStyle(int style) { 
     return fontStyle & style == style; 
    } 
} 

、あなたがBOLDとUNDERLINEDスタイルを作成したい場合は - ちょうどこの操作を行います。

FontStyle boldAndUnderlined = new FontStyle(); 
boldAndUnderlined.setFOntStyle(FontStyle.BOLD | FontStyle.UNDERLINED); 
+0

ええと、setFontStyle関数はそのスタイルに従って記述する必要があります。たとえば、setFontStyle(3 | 5)を送信すると、setFontStyle(7)という特殊な列挙型は7に等しくないはずです。 –

+0

+1履歴レッスン。 – bancer

+0

私の検索はこのステートメントから始まりましたgl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);アンドロイドでOpenGLを勉強している間、これは古いスタイルのプラットフォームではありません。 –

1

そのバイナリ 『または』オペレータ、私はそれがJavaの

5

に同じだと仮定これは、出力されたビット演算子、nuts and bolts Java tutorial

の一部です。数字のバイナリ表現のビットを 'or'ingした結果です。

1

それはビット単位またはです:

5 = 110 
3 = 011 
5 | 3 = 
    111 
2

|演算子はビットごとのOR関数です。バイナリで

5は101を書かれ、そして3が11だから、3書かれている| 5 7.

5

これは、ビット単位であるかである、あなたに111を与えるだろう。

私はそれをテストしませんでした。しかし、それは7でなければなりません。

101 -> 5 
011 -> 3 
---- 
111 -> 7 

1|1 = 1 
1|0 = 1 
0|1 = 1 
0|0 = 0 
関連する問題