【问题标题】:Boolean algebra - Finding an item exists or not?布尔代数 - 查找项目是否存在?
【发布时间】:2011-01-17 12:01:02
【问题描述】:

我有以下物品

苹果= 00000001 (1)

芒果= 00000010 (2)

香蕉= 00000100 (4)

葡萄= 00001000 (8)

现在我正在存储用户可以通过执行 or'd 获得的水果

UserA- 00000001(Apple) or'd 00000010(Mango) = 00000011(即 3)

现在我想检查该用户是否包含 Apple 或 Banana ?直到现在我在想:(UserA's-Values) & (Apple|Banana) =(Apple|Banana)

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      对于枚举:http://msdn.microsoft.com/en-us/library/cc138362.aspx
      对于结构:Bit fields in C#

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

      【讨论】:

        猜你喜欢
        • 2020-07-20
        • 1970-01-01
        • 2010-12-27
        • 2021-11-23
        • 1970-01-01
        • 2019-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多