什么是介于2 int变量之间的mean管道运算符

What is mean pipe operator between 2 int variants?

本文关键字:之间 mean 管道 运算符 变量 int 什么      更新时间:2023-10-16

具有以下代码-

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

得到CCD_ 1。你能解释一下|做了什么吗?

它执行了两个值的逐位or

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

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

0010 OR 1000给你1010,等于10

它被称为Bitwise OR。。。。。。。。

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

因此:

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