C++“| =”赋值运算符

C++“| =”赋值运算符

问题描述:

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

gObj->Variable |= 0x1000000; 

此外,什么是“&”运营商在这种情况下,是什么意思?

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

http://*.com/questions/562303/the-definitive-c-书指南和列表。 http://en.wikipedia.org/wiki/C_operators。 –

+0

当你有不同的标志时,他们会像你的例子一样使用,所有标志都由一位表示。第一个设置一个标志,第二个检查一个标志。 – chris

+0

如果您知道他们是按位运算符,为什么不简单地查看您可用的数千个现有资源之一(包括此站点)? –

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

这些是bitwise operations

|代表OR operation&代表AND operation

x |= y 

相当于

x = x | y 

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

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

它是按位或操作员和上面的语句将变量的第一位设为1