按位 - 如何检查二进制数是否包含另一个?

时间:2014-01-21 11:44:08

标签: c++ c binary bit-manipulation

  A  = 110000000    -    384 Blue+Red
  B  = 011000010    -    194 Green+Black+Red

  A & B =   C  = 010000000    -    128 Red

如何检查B是否包含A中的所有位以及其他位?在上面的例子中,我想得到“假”。

我正在使用XCode& objective-c但据我所知,这应该不重要

3 个答案:

答案 0 :(得分:7)

B包含A,如果A& B(即交点)等于A:

(a & b) == a

类似于

a ⊆ b ↔ (a ∩ b) = a

来自集论。

答案 1 :(得分:1)

如果您的意思完全相同,则测试为A == B

如果您的意思是B必须包含A中设置的所有位,以及其他人(A & B) == A

答案 2 :(得分:0)

使用ex-nor

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

如果a和b相同则所有位在〜(a ^ b)

中将为1