“| =”运算符的含义?

时间:2012-09-19 16:36:01

标签: c

我遇到过像

这样的代码
if (flagsDef) 
flagsTainted |= flagsUsed;

请协助了解所用操作员的含义。

4 个答案:

答案 0 :(得分:11)

声明:

flagsTainted |= flagsUsed

是:

的简写
flagsTainted = flagsTainted | flagsUsed

使用二进制/按位OR运算符|

代码正在操作标志变量,该变量通过设置变量flagsTainted中的位来保持状态信息。

有关按位操作的更多信息,wikipedia article非常好。

答案 1 :(得分:3)

a op= ba = a op b|为按位or运算符(按位意味着它适用于每个二进制数字)。

以下是or的{​​{3}}:

    0 1 
    ___
 0| 0 1
 1| 1 1

答案 2 :(得分:1)

|是一个按位OR。这意味着它使用或运算符比较这些位。

例如:

101
001

如果你|这两个,你得到101. | =将结果返回到操作的左侧。

答案 3 :(得分:0)

它可以用英语读作“或等于”。

它类似于+ =,除了不向右边添加左边的值,而是执行按位或两个值,然后将结果分配给左边的变量,如你所料。

有关按位运算的更多信息,请参阅以下链接: Wikipedia