布尔代数 - 查找项目是否存在?

时间:2011-01-17 12:01:02

标签: c# php boolean boolean-logic boolean-expression

我有以下项目

Apple = 00000001(1)

芒果= 00000010(2)

香蕉= 00000100(4)

Grapes = 00001000(8)

现在我通过做或者

存储用户可以拥有的水果

UserA- 00000001(Apple)或00000010(芒果)= 00000011(即3)

现在我要检查该用户是否包含Apple或Banana?直到现在我在想这个:( UserA的价值观)& (Apple | Banana)=(Apple | Banana)

即(00000011)&(00000001 | 00000100)=(00000001 | 00000100)

但它不起作用?我可以知道我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

您正在检查Apple和Banana。表达式应为(UserA's-Values)& (Apple | Banana)(!= 0)

答案 1 :(得分:0)

也可以在Enum和Struct中存储和操作位。

对于Enum:http://msdn.microsoft.com/en-us/library/cc138362.aspx
对于Struct:Bit fields in C#

枚举很好,因为.ToString()将打印以逗号分隔的元素列表,但您仍然使用标准的AND / OR运算符来对其进行操作和测试。