C# 中字節數組與十六進製字符串的相互轉換
在編程中,字節數組和十六進製字符串之間的轉換是一項常見的任務。本文將介紹如何在 C# 中實現這種轉換:
從字節數組轉換為十六進製字符串
從 .NET 5 開始,您可以使用內置方法 Convert.ToHexString
來完成此任務:
<code class="language-csharp">string hexString = Convert.ToHexString(byteArray);</code>
從十六進製字符串轉換為字節數組
對於反向操作,請使用 Convert.FromHexString
:
<code class="language-csharp">byte[] byteArray = Convert.FromHexString(hexString);</code>
舊版 .NET 版本的替代方法
如果您使用的是舊版 .NET,可以使用以下方法:
<code class="language-csharp">public static string ByteArrayToString(byte[] ba) { StringBuilder hex = new StringBuilder(ba.Length * 2); foreach (byte b in ba) hex.AppendFormat("{0:x2}", b); return hex.ToString(); }</code>
或者:
<code class="language-csharp">public static string ByteArrayToString(byte[] ba) { return BitConverter.ToString(ba).Replace("-", ""); }</code>
反向轉換
要將十六進製字符串轉換回字節數組,請使用此方法:
<code class="language-csharp">public static byte[] StringToByteArray(string hex) { int NumberChars = hex.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); } return bytes; }</code>
優化
為了提高性能,您可以考慮使用避免基於字符串轉換的替代方法。但是,對於大多數場景,此處介紹的方法應該足夠了。
以上是如何在C#中的字節陣列和十六進製字符串之間進行轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!