我有这样的情况:
拿到enum
enum MyType{
None = 0,
First = 1,
Second = 2,
Third = 4,
//and so on
}
现在我不想检查给定的数字是否是二进制总和的结果,例如
int givenNumber = 3;
int result =
//how to get that it's sum of 2 enums in this particular case would be (int)Type.First & (int)Type.Second == 3;
希望我的问题足够清楚,有人可以提供帮助。
编辑
枚举值始终由 2 供电
我想编写一个方法来检查给定的数字是否可以是不同二进制和示例的一部分:
int givenNumber = 1; //1 , 3 ,5 and 7 will be the answer
- 现实生活中的示例:我的数据库中有承包商,每个承包商都可以是 Producer = 1,Supplier = 2,Service = 4 在 db 我只能存储 1 个值 int 在这种情况下将是最明智的选择。当我将项目加载到我的服务 - 承包商组合框时,我希望加载每一行,例如值 4、5 或 7(因为 7 = 1+2+4、5 = 1+4 和 4=4)。
现在我的问题更清楚了吗?