Heim >Backend-Entwicklung >C++ >Wie kann man Byte -Arrays effizient in Hexadezimalstrings umwandeln und umgekehrt?

Wie kann man Byte -Arrays effizient in Hexadezimalstrings umwandeln und umgekehrt?

Susan Sarandon
Susan SarandonOriginal
2025-02-03 08:09:38189Durchsuche

How to Efficiently Convert Byte Arrays to Hexadecimal Strings and Vice Versa?

effizient umwandelnden Byte -Arrays und hexadezimalen Zeichenfolgen

Viele Anwendungen erfordern die Umwandlung von Byte -Arrays in Hexadezimalstränge und umgekehrt. In diesem Artikel werden effiziente Methoden für diese Konvertierung in .NET.

untersucht

Byte -Array zu hexadezimaler String

.NET 5 und später die einfachste Lösung mit Convert.ToHexString:

bieten
<code class="language-csharp">byte[] byteArray = { 1, 2, 3 };
string hexString = Convert.ToHexString(byteArray); </code>

Für ältere .NET -Frameworks bieten zwei Alternativen eine ähnliche Funktionalität:

Methode 1 (mit StringBuilder):

<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 (mit BitConverter):

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

hexadezimale Zeichenfolge zum Byte -Array

Eine hexadezimale Zeichenfolge in ein Byte -Array konvertieren kann mit dieser Methode erreicht werden:

<code class="language-csharp">public static byte[] HexToByteArray(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>

Für eine verbesserte Leistung vermeidet die Verwendung von Substring mit Convert.ToByte direkt unnötige Zwischenkonvertierungen. Dieser Ansatz ist besonders vorteilhaft im Umgang mit großen Byte -Arrays.

Das obige ist der detaillierte Inhalt vonWie kann man Byte -Arrays effizient in Hexadezimalstrings umwandeln und umgekehrt?. 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