“|的含义 =“运营商?

我遇到过类似的代码

if (flagsDef) flagsTainted |= flagsUsed; 

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

该声明:

 flagsTainted |= flagsUsed 

是简写:

 flagsTainted = flagsTainted | flagsUsed 

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

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

有关按位操作的更多信息, 维基百科文章非常好。

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

这是or的真值表 :

  0 1 ___ 0| 0 1 1| 1 1 

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

例如:

 101 001 

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

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

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

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