首頁 > 後端開發 > C++ > 如何有效地轉換.NET中的字節陣列和十六進製字符串?

如何有效地轉換.NET中的字節陣列和十六進製字符串?

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

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

掌握字節數組和.net

中的十六進製字符串轉換 .NET開發人員經常遇到需要在字節陣列和十六進製字符串之間進行轉換的需要。本指南探討了這些轉換的有效方法。

將字節陣列轉換為十六進制>

從.net 5開始,

提供了最簡單,最有效的解決方案: Convert.ToHexString

對於較舊的.NET框架,請考慮以下替代方案:
string hexString = Convert.ToHexString(byteArray);
登入後複製

其中

被定義為:
hexString = ByteArrayToHex(byteArray);
登入後複製
>

ByteArrayToHex另一個可行的選擇,儘管效率可能較低:

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();
}
登入後複製
將十六進製字符串轉換為字節陣列

hexString = BitConverter.ToString(byteArray).Replace("-", "");
登入後複製

> 反向轉換同樣重要:>

函數可以用作:
byte[] byteArray = HexToStringArray(hexString);
登入後複製
>

HexToStringArray

性能優化
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;
}
登入後複製

為了獲得最佳性能,尤其是在大型數據集的情況下,請避免使用>>>。直接迭代和位操縱可提供大量的性能改進。

以上是如何有效地轉換.NET中的字節陣列和十六進製字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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