次のコードを持つ -
enum FileOpenFlags {
flagREAD = 1, flagWRITE = 2,
flagCREATE = 4, flagEND = 8,
flagAPPEND = flagWRITE | flagEND,
};
cout << flagAPPEND << endl;
を与え10
ます。が何をしたか説明してもらえます|
か?
次のコードを持つ -
enum FileOpenFlags {
flagREAD = 1, flagWRITE = 2,
flagCREATE = 4, flagEND = 8,
flagAPPEND = flagWRITE | flagEND,
};
cout << flagAPPEND << endl;
を与え10
ます。が何をしたか説明してもらえます|
か?
2 つの値をビット単位or
で処理しました。
flagWRITE
の (2) バイナリ表現は 0010
flagEND
の (8) バイナリ表現は 1000
0010 OR 1000 は、10 に等しい 1010 を返します
それはビットごとのORと呼ばれます.......
これはビットごとの「OR」演算子です。したがって、ビット値 2 と 8 はそれぞれビットごとに OR 演算されます。
そう:
1000 (flagEND = 8)
OR 0010 (flagWRITE = 2)
-----------
= 1010 (flagAppend = 10)