2个int变体之间的平均管道运算符是什么?

时间:2012-08-28 18:13:17

标签: c++

拥有以下代码 -

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

给出10。你能解释一下|做了什么吗?

4 个答案:

答案 0 :(得分:5)

它在这两个值中有bitwise or

答案 1 :(得分:4)

flagWRITE的(2)二进制表示是0010

flagEND的(8)二进制表示是1000

0010 OR 1000给你1010等于10

答案 2 :(得分:2)

它被称为Bitwise OR ........

答案 3 :(得分:2)

这是一个按位“OR”运算符。因此,位值2和8分别按位进行OR运算。

所以:

   1000 (flagEND = 8) 
OR 0010 (flagWRITE = 2)
-----------
 = 1010 (flagAppend = 10)