Maison >développement back-end >C++ >Comment convertir efficacement les tableaux d'octets en chaînes hexadécimales et vice versa?
Convertir efficacement les tableaux d'octets et les chaînes hexadécimales
De nombreuses applications nécessitent la conversion des tableaux d'octets en chaînes hexadécimales et vice versa. Cet article explore des méthodes efficaces pour cette conversion dans .NET.
Tableau d'octet en chaîne hexadécimale
.net 5 et ultérieurement offrant la solution la plus simple en utilisant Convert.ToHexString
:
<code class="language-csharp">byte[] byteArray = { 1, 2, 3 }; string hexString = Convert.ToHexString(byteArray); </code>
Pour les frameworks .NET plus anciens, deux alternatives fournissent des fonctionnalités similaires:
Méthode 1 (Utilisation de 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>
Méthode 2 (en utilisant BitConverter):
<code class="language-csharp">public static string ByteArrayToHex(byte[] ba) { return BitConverter.ToString(ba).Replace("-", ""); }</code>
chaîne hexadécimale à un tableau d'octet
La conversion d'une chaîne hexadécimale à un tableau d'octets peut être réalisée avec cette méthode:
<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>
pour des performances améliorées, l'utilisation Substring
avec Convert.ToByte
évite directement les conversions intermédiaires inutiles. Cette approche est particulièrement bénéfique lorsqu'il s'agit de grandes tableaux d'octets.
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!