Mastering Byte Array et Hex String Conversions dans .NET
.NET Les développeurs rencontrent fréquemment la nécessité de convertir entre les réseaux d'octets et les chaînes hexadécimales. Ce guide explore des méthodes efficaces pour ces conversions.
Conversion des tableaux d'octets en chaînes hexadécimales
à partir de .net 5, Convert.ToHexString
offre la solution la plus simple et la plus efficace:
<code class="language-csharp">string hexString = Convert.ToHexString(byteArray);</code>
Pour les plus anciens frameworks .NET, considérez ces alternatives:
<code class="language-csharp">hexString = ByteArrayToHex(byteArray);</code>
où ByteArrayToHex
est défini comme:
<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>
Une autre option viable, bien que potentiellement moins efficace:
<code class="language-csharp">hexString = BitConverter.ToString(byteArray).Replace("-", "");</code>
Convertir des chaînes hexadécimales en tableaux d'octets
La conversion inverse est tout aussi importante:
<code class="language-csharp">byte[] byteArray = HexToStringArray(hexString);</code>
La fonction HexToStringArray
peut être implémentée comme:
<code class="language-csharp">public static byte[] HexToStringArray(string hex) { int numChars = hex.Length; byte[] bytes = new byte[numChars / 2]; for (int i = 0; i < numChars; i += 2) bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); return bytes; }</code>
Optimisation des performances
Pour des performances optimales, en particulier avec les grands ensembles de données, évitez d'utiliser Convert.ToByte
avec Substring
. L'itération directe et la manipulation des bits fournissent des améliorations substantielles des performances.
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!