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

C++ "|=" assignment operator

本文关键字:赋值运算符 C++      更新时间:2023-10-16

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

gObj->Variable |= 0x1000000;

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

if ((gObj->Variable & 2) == 2)
{
    do stuff
}

这些是按位运算。

| 代表 OR 操作,& 代表 AND 操作。

x |= y

相当于

x = x | y

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

0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10

我不是C++专家,但我相信这些被视为 += 或 *=。 也就是说,它将按位或具有您提到的十六进制数的变量位。 此外,Variable & 2 正在用 10(二进制)进行按位 AND。

它是

按位或运算符,上面的语句会将变量的第一位设置为 1。