checker |= (1 << val);
| =做什么?
1&lt;&lt; val将位移到左侧,这会增加值。
答案 0 :(得分:5)
与checker = checker | (1 << val)
相同,就像checker += val
与checker = checker + val
相同。
|
表示逻辑OR,即如果任一源值设置了一个,它将在目标中设置。
答案 1 :(得分:5)
此代码相当于
checker = checker | (1 <&lt;&lt; val)
这里,|
是按位OR运算符,它接收两个数字并返回一个新数字,其中1位设置在输入数字设置为1位的任何位置。您看到的|=
是“按位分配或分配”,类似于+=
或*=
,但|
。