2014-01-21 70 views
2
A = 110000000 - 384 Blue+Red 
    B = 011000010 - 194 Green+Black+Red 

    A & B = C = 010000000 - 128 Red 

如何檢查B是否包含A中的所有位以及其他可能的位?在上面的情況下,我想獲得「假」。按位 - 如何檢查二進制數是否包含另一個?

我使用的XCode &的Objective-C,但不應作爲此事據我所知

+0

目前還不清楚在你的例子中顏色是指什麼。我想你的問題是:「如何檢查A號中所有設置爲1的位在B號中是否也設置爲1?」 – franssu

+0

@franssu編輯回答 – Segev

+0

仍然不清楚 – franssu

回答

6

B含有甲如果A & B(即,交叉點)等於A:

(a & b) == a 

其類似於

a ⊆ b ↔ (a ∩ b) = a 
來自集合論的

+0

a⊆b↔(a∩b)= a回過頭幾年,謝謝! – Segev

1

如果你的意思是一模一樣的位,測試A == B

如果您的意思是B必須包含在A中設置的所有位,可能還有其他的(A & B) == A

+0

我無法得到它的工作。請參閱編輯答案 – Segev

+0

當然,您的測試不會打印任何內容:「B」的值不包含「A」值的所有位,因此您可以根據自己的需要獲取「false」。 –

0

使用EX-NOR

In C^is ex-or operator and ~ is complement, to get ex-nor use ~(a^b) 

如果a和b是相同的,那麼所有的比特將是1〜(A^B)

+0

或等效地,'a == b'。我不認爲混淆會增加任何內容。 –

+0

當然。要執行位運算符,您可以使用上面的。 – Rahul

+0

@Rahul我無法讓它工作。查看編輯答案 – Segev

相關問題