-2

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

gObj->Variable |= 0x1000000;

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

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

3 回答 3

5

这些是按位运算

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

x |= y

相当于

x = x | y

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

0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10
于 2012-06-15T20:56:21.027 回答
3

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

于 2012-06-15T20:55:54.383 回答
0

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

于 2012-06-16T08:33:10.667 回答