Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menukar antara tatasusunan byte dan rentetan heksadesimal dalam .net?

Bagaimana cara menukar antara tatasusunan byte dan rentetan heksadesimal dalam .net?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-03 08:27:11999semak imbas

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

dengan cekap menukar susunan byte dan rentetan heksadesimal dalam .net

Banyak tugas pengaturcaraan memerlukan menukar antara tatasusunan byte dan perwakilan rentetan heksadesimal mereka. .NET menawarkan beberapa kaedah, masing -masing dengan pelbagai tahap kecekapan bergantung pada versi .net.

Modern .Net (5 dan kemudian):

.NET 5 dan kemudian versi menyediakan fungsi terbina dalam yang dioptimumkan:

  • : Convert.ToHexString() Menukar array byte terus ke dalam rentetan heksadesimal.
  • : Convert.FromHexString() Menukar rentetan heksadesimal ke dalam array byte. Kaedah ini biasanya merupakan pendekatan yang paling berkesan dan disyorkan untuk projek .NET yang lebih baru.

versi yang lebih tua. NET:

Untuk rangka kerja yang lebih tua. NET, penukaran manual diperlukan. Berikut adalah beberapa kaedah biasa:

Kaedah 1: Pendekatan (untuk penukaran rentetan heksadesimal): 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>

Kaedah 2: Pendekatan (untuk penukaran rentetan heksadesimal): BitConverter

<code class="language-csharp">public static string ByteArrayToHex(byte[] ba)
{
    return BitConverter.ToString(ba).Replace("-", "");
}</code>

rentetan hexadecimal ke penukaran array byte:

<code class="language-csharp">public static byte[] HexStringToByteArray(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>

Pertimbangan Prestasi:

Walaupun

dan Substring umumnya cekap, kaedah optimum bergantung kepada aplikasi tertentu. Kaedah terbina dalam .NET 5 menawarkan baki prestasi terbaik. Untuk versi yang lebih lama, profil kod anda akan membantu menentukan pendekatan terpantas untuk kes penggunaan anda. Pertimbangkan perdagangan antara prestasi dan kebolehbacaan kod semasa memilih kaedah. Convert.ToByte

Atas ialah kandungan terperinci Bagaimana cara menukar antara tatasusunan byte dan rentetan heksadesimal dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn