c++ - 位掩码到数组索引

标签 c++ indexing bitmask

有没有一种简单的方法可以将位掩码转换为数组索引?

即。如果我有一个枚举

a = 0x01,
b = 0x02,
c = 0x04,
d = 0x08,
e = 0x10, 
etc

我想将相关数据存储在一个数组中,有没有一种简单的方法可以将 a 转换为 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

关于c++ - 位掩码到数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696952/

相关文章:

python - 从特定索引向数据框添加新值?

mysql - 覆盖索引未显示预期的性能

javascript - 遇到未捕获的类型错误 : Cannot read property of undefined

c++ - Boost.Python : Wrap functions to release the GIL

c++ - 处理可能的空指针的类的 boost 序列化

c++ - 过时 - OpenCV 的错误模式

c - 在 C 中匹配二进制模式

c++ - 如何通过位掩码存储和检索 3 位数字?

c++ - 为什么这有效? (在 C++ 中查找奇数)

c++ - `using namespace std::literals` 安全吗?