Frage
Gibt es eine einfache Möglichkeit, eine Bitmaske in einem Array-Index?
konvertierendh. Wenn ich habe eine Enumeration bekam
a = 0x01,
b = 0x02,
c = 0x04,
d = 0x08,
e = 0x10,
etc
und ich möchte in einem Array releated Daten speichern, gibt es eine einfache Art und Weise, so dass ich eine bis 0, b 1, c 2 usw. umwandeln kann?
Vielen Dank
Lösung
r = ln base 2
and programmatically,
unsigned int v=yourEnumValue;
unsigned r = 0;
while (v >>= 1)
{
r++;
}
r is your answer
Andere Tipps
Ich bin mir nicht sicher, ob dies ist, was Sie fragen, aber warum Sie nicht nur nehmen Sie ein 2-Basisprotokoll?
Anmelden 2 n
Ich weiß nicht, eine einfache Lösung, wie Sie gefragt, aber warum eine Karte einfach nicht statt ein Array verwenden?
Sollte ohne magische Umwandlung arbeiten.
Verwenden Sie eine std :: map:
#include <map>
std::map <my_enum, my_datatype> m;
m[ a ] = whatever;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow