Bitmaske erstellen
-
Nabend,
ich würde gerne eine Maske dieser Art als integer erstellen (nicht std::bitset oder ähnliches) und stehe grad etwas auf dem Schlauch, vor allem für das (0x1)y fällt mir nichts sinnvolles ein:
(0x1)y0z
x, y und z sind ints und geben die Anzahl der jeweiligen Stellen an. Fällt jemandem spontan was ein?
-
Damit wir uns richtig verstehen: x = 2, y = 3, z = 4 würde in deiner Schreibweise 0010010010000 bedeuten?
-
Jap. Ich krieg das einfach nicht richtig vexort/vershiftet/...
-
Spontan würde ich ja sagen:
for (int i = 0; i < y; ++i) { bitmaske <<= x; bitmaske += 1; } bitmaske <<= z;
-
for (int i = 0; i < y; ++i) { bitmaske <<= x+1; bitmaske += 1; } bitmaske <<= z;
Vielen Dank, so gehts (x+1 statt x, das += 1 in der Zeile danach überschreibt sonst einfach eine der reingeshifteten Nullen).
Das war jetzt doch einfacher als erwartet, da hab ich wohl nen Knoten im Kopf gehabt.