string in byte[] Konvertieren

Darkas

Erfahrenes Mitglied
Hi, ich bins mal wieder.

Wie der Titel schon verrät habe ich das Problem dass ich einen string der aus Zahlen besteht. Bsp:

Code:
21 5 34 76 23 71 3

Diesen string möchte ich in ein bytearray der Form:

Code:
byte[0] = 21;
byte[1] = 5;
byte[2] = 34;
byte[3] = 76;
byte[4] = 23;
byte[5] = 71;
byte[6] = 3;

umwandeln.
Hat da vielleicht jemand eine Funktion oder einen Codeschnipsel (Wie immer in C#)?
 
Hallo,
das ist ganz einfach:

byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(deinString);

Wobei du beim fettgedruckten Zwischen verschiedenen Kodierungen auswählen kannst, UTF8, ASCII,...

Gruss
Konstantin
 
Erhalte ich dann auch wenn z.B. der String

Code:
43

ist dann als byte auch

Code:
43

oder irgendwas anderes?
 
Nein. Daher solltest du den String auf Basis der Leerzeichen splitten und dann jeden einzelnen String in ein Byte umwandeln.
C#:
string temp = "21 34 45";
string[] splitted = temp.Split(' ');
byte[] bytes = new byte[splitted.Length];
for (int i = 0; i < bytes.Length; i++)
    Byte.TryParse(splitted[i], out bytes[i]);
 
gut, das klappt auch soweit.

Dann habe ich aber noch eine Frage: Welchen Wert würde dann \n also Enter zurückgeben?
 
gut, das Funkioniert jetzt alles.

Es gibt jetzt aber ein neues Problem:
Ich will 2 Bytes lesen und daraus einen Wert erhalten.

Mal ein Beispiel:

In der Datei steht:

Code:
00100010 | 01001101

Das würde übersetzt bedeuten:

Code:
34 | 77

das will ich allerding nicht haben sondern ich will die 16 Btis gemeinsam verwenden, so dass da

Code:
8781

steht.
 
Also das hat mir nicht wirklich weitergeholfen.

Gibt es nicht einen 16-Bit Datentyp, dessen Bits ich so Manipulieren kann, dass der gewünschte Wert dabei herauskommt (die Operatoren kenne ich). Und wenn nicht, kann ich dann einen selbst erstellen Wenn ja, wie?
 
Hi

Was hälst du denn von System.Int16 (short)? Der Datentyp hat doch 16Bit?!

Bezgl. eigene Datentyp schreiben:
Wenn du eine eigene Klasse/Struktur oder Enumeration schreibst, ist das ein Datentyp. Demnach sollte die Frage ja beantwortet sein. Du musst dann natürlich für entsprechende Manipulationen die Operatoren überschreiben.
 
Zurück