2017-04-20 88 views
0

說我有以下位運算:如何檢查按位OR是否包含特定值?

1 OR 12 OR 7 => 15 

現在,有沒有什麼辦法讓我可以檢查一個特定的號碼是一起進行或運算值的一部分?

例如,

7 <Some Operation> 15 = true 

4 <Some Operation> 15 = false 
+2

如果一個特定的數字是其中一個數字「或」,則無法檢查。例如,'10 | 4 => 14'和'10 | 6 => 14'。是4個數字之一嗎?然而,9在14中並不是OR'ed。如果_x&z!= x_,數字_x_ definetely在_z_中不是OR'ed。 –

回答

0

你可以只檢查,如果一個特定的值Val潛在的Or操作導致的結果Res你的部分通過測試

(Val And Res) = Val 

如果屬實,情況可能是這樣。

爲了您7 <some operation> 15例如,你會發現:

(0111b And 1111b) = 0111b (True) 

,併爲您的4 <some operation> 15例如:

(0100b And 1111b) = 0100b (True as well!) 

第二個例子也告訴你,那4可能已經介入,但不是,那它是確定無疑的。

相關問題