题
是否有一个位掩码中转换到一个数组索引的简单方法?
即。如果我有一个枚举
a = 0x01,
b = 0x02,
c = 0x04,
d = 0x08,
e = 0x10,
etc
和欲相关型号数据存储在数组中,会出现这样,我可以转换到0,B 1,C 2。一个简单的方法等?
非常感谢
解决方案
r = ln base 2
and programmatically,
unsigned int v=yourEnumValue;
unsigned r = 0;
while (v >>= 1)
{
r++;
}
r is your answer
其他提示
我不知道如果这是你在问什么,但你为什么不只是采取一个2基地日志?
日志<子> 2 子> N'
我不知道一个简单的解决方案就像你问的,但为什么不直接使用地图,而不是一个数组?
应该没有任何魔法转换。
使用一个std ::地图:
#include <map>
std::map <my_enum, my_datatype> m;
m[ a ] = whatever;
不隶属于 StackOverflow