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

Était-ce utile?

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
scroll top