0

次のコードを持つ -

    enum FileOpenFlags {
    flagREAD = 1, flagWRITE = 2,
    flagCREATE = 4, flagEND = 8,
    flagAPPEND = flagWRITE | flagEND,
    };
    cout << flagAPPEND << endl;

を与え10ます。が何をしたか説明してもらえます|か?

4

4 に答える 4

5

2 つの値をビット単位orで処理しました。

于 2012-08-28T18:14:27.573 に答える
4

flagWRITEの (2) バイナリ表現は 0010

flagENDの (8) バイナリ表現は 1000

0010 OR 1000 は、10 に等しい 1010 を返します

于 2012-08-28T18:15:26.730 に答える
2

それはビットごとのORと呼ばれます.......

于 2012-08-28T18:15:25.937 に答える
2

これはビットごとの「OR」演算子です。したがって、ビット値 2 と 8 はそれぞれビットごとに OR 演算されます。

そう:

   1000 (flagEND = 8) 
OR 0010 (flagWRITE = 2)
-----------
 = 1010 (flagAppend = 10)
于 2012-08-28T18:18:06.320 に答える