# Zweierpotenz in C#



## doghma (4. August 2009)

Hallo,

folgendes:

Ich habe einen Wert, z.B. 11. Dieser beeinhaltet halt die 1,2 und  8. Wie kann ich diesen Wert am einfachsten aufschlüsseln.

schonmal danke


----------



## Jy-Falc00n (5. August 2009)

Das würde mich auch mal intersieren.


----------



## Riddance (5. August 2009)

Sry das ich dir gestern nicht mehr geantwortet habe... War etwas stressig.

Aufsplitten in binär (das wollte der Threadersteller eigentlich  ) geht ganz einfach. 

int value = 11;
char[] inbinary = Convert.ToString(value,2).ToCharArray();

Schon hat man das Binärformat einer Zahl in einem Char-Feld stehn und kann das durchiterieren.


----------



## doghma (5. August 2009)

Ok, aber als Ergebnis hab ich jetzt:

xy[0] = 1 ( = Item 3 selektiert, 8)
xy[1] = 0 ( = Item 2 nicht selektiert, 0)
xy[2] = 1 ( = Item 1 selektiert, 2)
xy[3] = 1 ( = Item 0 selektiert, 1)

Habs mit der 43 auch mal probiert. Wenn ich Das Array von hinten durchgehe, passt es. Hab dann:

xy[0] = 1 ( = Item 5 selektiert, 32)
xy[1] = 0 ( = Item 4 nicht selektiert, 0)
xy[2] = 1 ( = Item 3 selektiert, 8)
xy[3] = 0 ( = Item 2 nicht selektiert, 0)
xy[4] = 1 ( = Item 1 selektiert, 2)
xy[5] = 1 ( = Item 0 selektiert, 1)

Dann danke!


----------



## Riddance (5. August 2009)

Ja musst natürlich von hinten durchgehen  
Hätte ich wohl dazuschreiben müssen 

In xy[0] wird natürlich die höchste Zahl gespeichert, da sie im String ja auch ganz vorne stehen würde.


----------



## doghma (5. August 2009)

Funzt alles so wie ichs haben wollte. Items werden schön brav selektiert. Ist einfacher als ich gedacht hatte. Danke nochmals


----------



## Riddance (5. August 2009)

int value = 11;
char[] inbinary = *Array.Reverse(*Convert.ToString(value,2).ToCharArray()*)*;

So hast du das ganze gleich in der richtigen Reihenfolge


----------



## doghma (5. August 2009)

Da meckert er aber, warum auch immer (void in char[] nicht möglich). Das Array seperat reversen macht er aber....das nenn ich Logik


----------



## Riddance (5. August 2009)

Ich gugg mir das nochmal schnell an  Sollte das auch in VS ausprobieren, bevor ichs hier schreib


----------



## Riddance (5. August 2009)

Ah ^^. Fehler gefunden. 

char[] inbinary = Convert.ToString(value, 2).ToCharArray();
Array.Reverse(inbinary);

Muss man leider zweiteilen, da die Reverse Funktion das Array selbst umändert und Rückgabewert void hat ^^. Mea culpa


----------



## doghma (5. August 2009)

int[] zweiPint = Array.ConvertAll<char,int>(Convert.ToString(Convert.ToInt16(GridS.Rows[listSolisten.SelectedIndex].Cells[6].Value), 2).ToCharArray(), Convert.ToInt32);

Array.Reverse(zweiPint);

So schauts nu aus. Zickt nicht, fein.


----------

