Maison > développement back-end > C++ > Comment convertir efficacement entre les tableaux d'octets et les chaînes hexadécimales dans .NET?

Comment convertir efficacement entre les tableaux d'octets et les chaînes hexadécimales dans .NET?

Mary-Kate Olsen
Libérer: 2025-02-03 08:27:11
original
966 Les gens l'ont consulté

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

Convertir efficacement les tableaux d'octets et les chaînes hexadécimales dans .NET

De nombreuses tâches de programmation nécessitent une conversion entre les tableaux d'octets et leurs représentations de chaînes hexadécimales. .NET offre plusieurs méthodes, chacune avec différents niveaux d'efficacité en fonction de la version .NET.

.NET moderne (5 et plus tard):

.NET 5 et les versions ultérieures fournissent des fonctions intégrées optimisées:

  • Convert.ToHexString(): convertit un tableau d'octets directement en une chaîne hexadécimale.
  • Convert.FromHexString(): convertit une chaîne hexadécimale en un tableau d'octets. Ces méthodes sont généralement l'approche la plus efficace et recommandée pour les nouveaux projets .NET.

Versions .NET plus anciennes:

Pour les frameworks .NET plus anciens, une conversion manuelle est nécessaire. Voici quelques méthodes courantes:

Méthode 1: StringBuilder Approche (pour la conversion de chaîne hexadécimale):

<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>
Copier après la connexion

Méthode 2: BitConverter Approche (pour la conversion de chaîne hexadécimale):

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

HexaDecimal String to octet Conversion du tableau:

<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>
Copier après la connexion

Considérations de performance:

Bien que Substring et Convert.ToByte soient généralement efficaces, la méthode optimale dépend de l'application spécifique. Les méthodes intégrées de .NET 5 offrent le meilleur équilibre des performances. Pour les versions plus anciennes, le profilage de votre code aidera à déterminer l'approche la plus rapide pour votre cas d'utilisation. Considérez les compromis entre les performances et la lisibilité du code lors du choix d'une méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal