我遇到过像
这样的代码if (flagsDef)
flagsTainted |= flagsUsed;
请协助了解所用操作员的含义。
答案 0 :(得分:11)
声明:
flagsTainted |= flagsUsed
是:
的简写flagsTainted = flagsTainted | flagsUsed
使用二进制/按位OR运算符|
。
代码正在操作标志变量,该变量通过设置变量flagsTainted
中的位来保持状态信息。
有关按位操作的更多信息,wikipedia article非常好。
答案 1 :(得分:3)
a op= b
为a = a op b
,|
为按位or
运算符(按位意味着它适用于每个二进制数字)。
以下是or
的{{3}}:
0 1
___
0| 0 1
1| 1 1
答案 2 :(得分:1)
|
是一个按位OR。这意味着它使用或运算符比较这些位。
例如:
101
001
如果你|
这两个,你得到101. | =将结果返回到操作的左侧。
答案 3 :(得分:0)