S
@volkard
das war nur ein vereinfachtest Beispiel. Für das was ich benötige ist es nicht wichtig wie das Objekt aussieht, wollte damit nur verdeutlichen, dass darin die Binärzahlen gespeichert werden.
Ich habe jetzt eine eigene Lösung gefunden:
// binaer: Die Binaerzahl die für alle Kombinationen benötigt wird, also 0,1,2,3,... -> 00,01,10,11,...
unsigned long binaer = i;
// bina: Zählt in 2er Potenzen hoch indem das 1er Bit immer um eins weitergeschoben wird
unsigned int bina = 1;
// arr: arr wird die Bitkombinationen enthalten: 0,0,0 / 0,0,1 / 0,1,0 / ...
int arr[3] ={0};
for(int j=0; j<3; j++)
{
// Ver-UND-en um die einzelnen Bits herauszufinden.
// Beispiel:
// 101 soll in arr gespeichert werden
// 101
// & 001
// -----
// 001 !=0
//
// bina weiterschieben 001 -> 010
//
// 101
// & 010
// -----
// 000 ==0
// ... usw
if((binaer & bina) == 0)
{
arr[j] = 0;
}
else
{
arr[j] = 1;
}
// bina weiterschieben
bina = bina << 1;
}
Ich weiß nicht ob die Lösung unschön ist oder nicht, aber sie tut das was ich brauche. Ich wusste nicht, dass man in C++ Verunden und Schieben (Shift) kann.
Vielen Dank an Alle, die sich um eine Lösung bemüht haben
Viele Grüße,
Samuirai