2014-01-21 33 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

相关问题