C++"| ="赋值运算符

Pab*_*pez -2 c++ variable-assignment operator-keyword

我的问题是,C++中的"| ="是什么?我知道他们是按位运算符,但我不明白他们在这里做了什么:

gObj->Variable |= 0x1000000;
Run Code Online (Sandbox Code Playgroud)

另外,在这种情况下,"&"运算符是什么意思?

if ((gObj->Variable & 2) == 2)
{
    do stuff
}
Run Code Online (Sandbox Code Playgroud)

bet*_*ido 5

这些是按位操作.

|代表OR运算,&代表AND运算.

x |= y
Run Code Online (Sandbox Code Playgroud)

相当于

x = x | y
Run Code Online (Sandbox Code Playgroud)

将这些操作用于十六进制值是很常见的,因为它更容易且非常直观.例如:

0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10
Run Code Online (Sandbox Code Playgroud)