代码之家  ›  专栏  ›  技术社区  ›  Dynite

位掩码到数组索引

  •  3
  • Dynite  · 技术社区  · 16 年前

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

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

    非常感谢

    5 回复  |  直到 16 年前
        1
  •  6
  •   lakshmanaraj    16 年前
    r =   ln base 2 
    and programmatically,
    
    unsigned int v=yourEnumValue;
    unsigned r = 0; 
    while (v >>= 1) 
    {
       r++;
    }
    
    r is your answer
    
        2
  •  4
  •   Can Berk Güder Pugalmuni    16 年前

    我不确定这是否是你要问的,但你为什么不拿一个双基日志呢?

        3
  •  3
  •   lc.    16 年前

    日志 N

        4
  •  2
  •   StefanB    16 年前

    应该在没有任何魔法转换的情况下工作。

        5
  •  1
  •   anon anon    16 年前

    #include <map>
    
    std::map <my_enum, my_datatype> m;
    m[ a ] = whatever;