Heim >Backend-Entwicklung >C++ >Wie kann man in .NET effizient zwischen Byte -Arrays und hexadezimalen Zeichenfolgen konvertieren?

Wie kann man in .NET effizient zwischen Byte -Arrays und hexadezimalen Zeichenfolgen konvertieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-03 08:27:111002Durchsuche

How to Efficiently Convert Between Byte Arrays and Hexadecimal Strings in .NET?

effizient Byte -Arrays und hexadezimale Zeichenfolgen in .NET

umwandeln

Viele Programmieraufgaben erfordern die Konvertierung zwischen Byte -Arrays und ihren hexadezimalen String -Darstellungen. .NET bietet je nach .NET -Version mehrere Methoden mit jeweils unterschiedlichem Effizienzniveau.

modern .net (5 und später):

.NET 5 und spätere Versionen bieten optimierte integrierte Funktionen:

  • Convert.ToHexString(): Umwandelt ein Byte -Array direkt in eine hexadezimale Zeichenfolge.
  • Convert.FromHexString(): Umwandelt eine hexadezimale Zeichenfolge in ein Byte -Array. Diese Methoden sind im Allgemeinen der effizienteste und empfohlenste Ansatz für neuere .NET -Projekte.

ältere .NET -Versionen:

Für ältere .NET -Frameworks ist eine manuelle Konvertierung erforderlich. Hier sind einige gemeinsame Methoden:

Methode 1: StringBuilder Ansatz (für die hexadezimale String -Konvertierung):

<code class="language-csharp">public static string ByteArrayToHex(byte[] ba)
{
    StringBuilder hex = new StringBuilder(ba.Length * 2);
    foreach (byte b in ba)
        hex.AppendFormat("{0:x2}", b);
    return hex.ToString();
}</code>

Methode 2: BitConverter Ansatz (für die hexadezimale String -Konvertierung):

<code class="language-csharp">public static string ByteArrayToHex(byte[] ba)
{
    return BitConverter.ToString(ba).Replace("-", "");
}</code>

Hexadezimal -String zum Byte -Array -Umbau:

<code class="language-csharp">public static byte[] HexStringToByteArray(string hex)
{
    int len = hex.Length;
    byte[] arr = new byte[len / 2];
    for (int i = 0; i < len; i += 2)
    {
        arr[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
    }
    return arr;
}</code>

Leistungsüberlegungen:

Während Substring und Convert.ToByte im Allgemeinen effizient sind, hängt die optimale Methode von der spezifischen Anwendung ab. Die integrierten Methoden in .NET 5 bieten die beste Leistungsbilanz. Bei älteren Versionen können Sie den schnellsten Ansatz für Ihren Anwendungsfall ermitteln. Betrachten Sie die Kompromisse zwischen Leistung und Code-Lesbarkeit bei der Auswahl einer Methode.

Das obige ist der detaillierte Inhalt vonWie kann man in .NET effizient zwischen Byte -Arrays und hexadezimalen Zeichenfolgen konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn