Bitmask à l'index Array
Question
Y at-il un moyen simple de convertir un masque de bits pour un index de tableau?
à savoir. Si j'ai un ENUM
a = 0x01,
b = 0x02,
c = 0x04,
d = 0x08,
e = 0x10,
etc
et je veux stocker des données releated dans un tableau, est-il un moyen simple tel que je peux convertir un à 0, b 1, c à 2. etc?
Merci
La solution
r = ln base 2
and programmatically,
unsigned int v=yourEnumValue;
unsigned r = 0;
while (v >>= 1)
{
r++;
}
r is your answer
Autres conseils
Je ne sais pas si c'est ce que vous demandez, mais pourquoi ne vous contentez pas d'un journal 2 base?
Log 2 n?
Je ne sais pas une solution simple comme vous avez demandé, mais pourquoi ne pas simplement utiliser une carte à la place un tableau?
Si le travail sans conversion magique.
Utilisez un std :: map:
#include <map>
std::map <my_enum, my_datatype> m;
m[ a ] = whatever;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow