Enums 如何使用枚举获取多个值?

Enums 如何使用枚举获取多个值?,enums,enum-flags,Enums,Enum Flags,我不知道该怎么做。但这正是我想要的。 我有一个枚举 EValue{A=1,B=2,C=4,D=8,E=16,} 我需要说数据库中的int值是数字 说如果选择A,c,E 需要在数据库中说1=4=16=21 这没关系,但是 那么从21开始,我如何检索a,c,e 提前感谢您的帮助您可以这样做(伪代码,因为您没有说您使用的是哪种语言): 看起来枚举值可以用2的幂表示 e、 g.2^0=1,2^1=2。。等等 所以你的问题归结为:把十进制转换成二进制 如果使用简单的逻辑,就可以得到相应的枚举 e.g. F

我不知道该怎么做。但这正是我想要的。 我有一个枚举

EValue{A=1,B=2,C=4,D=8,E=16,}

我需要说数据库中的int值是数字

说如果选择A,c,E

需要在数据库中说1=4=16=21

这没关系,但是 那么从21开始,我如何检索a,c,e


提前感谢您的帮助

您可以这样做(伪代码,因为您没有说您使用的是哪种语言):


看起来枚举值可以用2的幂表示

e、 g.
2^0=1,2^1=2
。。等等

所以你的问题归结为:把十进制转换成二进制

如果使用简单的逻辑,就可以得到相应的枚举

e.g. For input 21, you could get 1, 4, 16 ( = 2 power 0, 2, 4) 

现在,您可以将它们映射到枚举。

您是否有一个应用程序位于此数据库的顶部?哪种语言?您正在描述一个“flags”枚举,大多数语言都有简单的方法来满足您的要求。
e.g. For input 21, you could get 1, 4, 16 ( = 2 power 0, 2, 4)