“|的含义 =“运营商?
我遇到过类似的代码
if (flagsDef) flagsTainted |= flagsUsed;
请协助了解所用操作员的含义。
该声明:
flagsTainted |= flagsUsed
是简写:
flagsTainted = flagsTainted | flagsUsed
它使用二进制/按位OR运算符|
。
代码正在操作一个标志变量,它通过设置变量flagsTainted
位来保持状态信息。
有关按位操作的更多信息, 维基百科文章非常好。
a op= b
是a = a op b
和|
是按位or
运算符(按位意味着它应用于每个二进制数字)。
这是or
的真值表 :
0 1 ___ 0| 0 1 1| 1 1
|
是一个按位OR。 这意味着它使用或运算符比较位。
例如:
101 001
如果你|
这两个,你得到101. | =将结果分配回操作的左侧。
它可以用英语读作“或等于”。
它类似于+ =除了不向右边添加左边的值,而是执行按位或两个值,然后将结果分配给左边的变量,如你所料。
有关按位运算的更多信息,请参阅以下链接: Wikipedia