C++“| =”赋值运算符
问题描述:
我的问题是,C++中的“| =”是什么?我得到的,他们是位运算符,但我不明白他们在做什么在这里:C++“| =”赋值运算符
gObj->Variable |= 0x1000000;
此外,什么是“&”运营商在这种情况下,是什么意思?
if ((gObj->Variable & 2) == 2)
{
do stuff
}
答
我不是C++专家,但我相信这些被当作+ =或* =。也就是说,它将按照您提到的十六进制数字按位或该变量的位。另外,变量& 2与10(二进制)进行按位与。
答
|
代表OR operation和&
代表AND operation。
x |= y
相当于
x = x | y
这是很常见的使用这些操作与十六进制值,因为它是非常容易和非常直观。例如:
0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10
答
它是按位或操作员和上面的语句将变量的第一位设为1
http://stackoverflow.com/questions/562303/the-definitive-c-书指南和列表。 http://en.wikipedia.org/wiki/C_operators。 –
当你有不同的标志时,他们会像你的例子一样使用,所有标志都由一位表示。第一个设置一个标志,第二个检查一个标志。 – chris
如果您知道他们是按位运算符,为什么不简单地查看您可用的数千个现有资源之一(包括此站点)? –