拥有以下代码 -
enum FileOpenFlags {
flagREAD = 1, flagWRITE = 2,
flagCREATE = 4, flagEND = 8,
flagAPPEND = flagWRITE | flagEND,
};
cout << flagAPPEND << endl;
给出10
。你能解释一下|
做了什么吗?
答案 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)