首頁 > 後端開發 > C++ > 如何在C#中的字節陣列和十六進製字符串之間進行轉換?

如何在C#中的字節陣列和十六進製字符串之間進行轉換?

Patricia Arquette
發布: 2025-02-03 08:13:09
原創
807 人瀏覽過

How to Convert Between Byte Arrays and Hexadecimal Strings in C#?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板