2012-09-19 22 views

回答

11

聲明:

flagsTainted |= flagsUsed 

是簡寫:

flagsTainted = flagsTainted | flagsUsed 

它採用二進制/位或運算符|

該代碼正在操作標誌變量,該變量通過設置變量flagsTainted中的位來保持狀態信息。

關於位操作的詳細信息,該wikipedia article是相當不錯的。

1

|是位或。這意味着它使用一個或運算符比較比特。

例如:

101 
001 

如果|兩個,你會得到101 | =將結果分配回操作的左側。

+0

在我急於得到答案我犯了一個錯誤:)。編輯,謝謝 – devshorts

3

a op= ba = a op b|是按位or運算符(按位意味着它適用於每個二進制數字)。

這裏是truth tableor

0 1 
    ___ 
0| 0 1 
1| 1 1 
0

它可以用英文讀作 「或等於」。

它類似於+ =除了代替添加左邊值右邊,它代替執行按位或這兩個值中,然後將結果分配到你所期望的左側的變量。

關於位操作的更多信息,請參閱以下鏈接: Wikipedia