“|=”在伪代码中是什么意思?

What does "|=" mean in pseudocode?

我正在尝试实现以下伪代码:

但是我看不懂那行是什么

state_val |= (c(s) == True) << i++

确实如此。为了提供一些上下文,这个伪代码可以在麻省理工学院的 this 论文中找到,c(s) 是 returns TrueFalse 基于 [=14] 的操作=].

按位或。基本上 shorthand 为

state_val = state_val | ((c(s) == True) << i++)

a |= b 表示 a 将被设置为 ab 的按位或。本质上,state_val 是一个数字,其位表示布尔值,其二进制表示形式如下所示:

c7(s) c6(s) c5(s) c4(s) c3(s) c2(s) c1(s) c0(s)

其中 c0 是第一个 cc1 是第二个,依此类推。如果 c7(s)c5(s)c1(s)是真的,那么 state_val 将是 10100010 二进制或 162.