Wie konvertiert man hex in ein Byte-Array?

8

Ich habe diese Binärdaten aus dem SQL-Server kopiert und eingefügt, die ich zu diesem Zeitpunkt nicht abfragen kann.

%Vor%

Wie konvertiere ich es zurück in ein Byte-Array in c #?

    
user82334 12.05.2009, 17:56
quelle

8 Antworten

21

In etwa so:

%Vor%

(EDIT: Jetzt etwas effizienter - keine Teilstrings erforderlich ...)

Es ist möglich, dass ParseNybble effizienter sein könnte. Zum Beispiel kann ein Schalter / Fall effizienter sein:

%Vor%

oder möglicherweise ein Nachschlagefeld:

%Vor%

Ich habe keinen von ihnen bewertet, und ich habe keine Ahnung, welcher der schnellste wäre. Die aktuelle Lösung ist jedoch wahrscheinlich die einfachste.

    
Jon Skeet 12.05.2009, 18:00
quelle
7

Erwägen Sie, eine Framework-Klasse zu nutzen, die bereits die Möglichkeit zur Hex-Konvertierung bietet, zum Beispiel XmlReader:

%Vor%

Verwendung:

%Vor%     
Handcraftsman 12.05.2009 19:50
quelle
3

Einfach:

%Vor%

Alles, was Sie beachten müssen, ist, dass ein int die hexadezimale Zahl in Gruppen von 8 hexadezimalen Ziffern teilt (hex sind jeweils 4 bits und CLR int type ist 32 bits, also 8 Ziffern pro int). Es gibt auch ein byte.Parse (), das gleich funktioniert, aber zwei Hex-Ziffern gleichzeitig übergibt.

    
Kevin Anderson 12.05.2009 18:00
quelle
3

In etwa so:

%Vor%     
MatteKarla 12.05.2009 18:31
quelle
1

Sie müssen dies ein wenig ändern (z. B. die ersten beiden Zeichen überspringen), aber es behandelt Leerzeichen in der Zeichenfolge:

%Vor%     
Erich Mirabal 12.05.2009 18:00
quelle
1

Langsam und doch spaßig: D

%Vor%

-jD

    
jduncanator 09.07.2012 08:16
quelle
0

Tatsächlich ist es einfacher, zwei Zeichen gleichzeitig in ein Byte zu konvertieren:

%Vor%     
user991629 12.10.2011 14:21
quelle
0

Ich benutze dies für C #, von ähnlichem Code in Java.

%Vor%     
djunod 30.09.2013 18:31
quelle

Tags und Links