Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menukar susunan byte dan rentetan hex dengan cekap?

Bagaimana cara menukar susunan byte dan rentetan hex dengan cekap?

Patricia Arquette
Patricia Arquetteasal
2025-02-03 08:23:09276semak imbas

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

menguasai array byte dan penukaran rentetan hex dalam .net

. NET pemaju sering menemui keperluan untuk menukar antara tatasusunan byte dan rentetan heksadesimal. Panduan ini meneroka kaedah yang cekap untuk penukaran ini.

Menukar array byte ke Hex Strings

dari .net 5 dan seterusnya,

menawarkan penyelesaian yang paling mudah dan paling berkesan:

Convert.ToHexString

untuk rangka kerja yang lebih tua, pertimbangkan alternatif ini:
<code class="language-csharp">string hexString = Convert.ToHexString(byteArray);</code>

di mana
<code class="language-csharp">hexString = ByteArrayToHex(byteArray);</code>
ditakrifkan sebagai:

ByteArrayToHex

pilihan lain yang berdaya maju, walaupun berpotensi kurang efisien:
<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>

<code class="language-csharp">hexString = BitConverter.ToString(byteArray).Replace("-", "");</code>
Menukar rentetan hex ke array byte

Penukaran terbalik sama pentingnya:

fungsi
<code class="language-csharp">byte[] byteArray = HexToStringArray(hexString);</code>
boleh dilaksanakan sebagai:

HexToStringArray

<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>
Pengoptimuman prestasi

Untuk prestasi yang optimum, terutamanya dengan dataset yang besar, elakkan menggunakan

dengan

. Lelaran langsung dan manipulasi sedikit memberikan peningkatan prestasi yang besar. Convert.ToByte

Atas ialah kandungan terperinci Bagaimana cara menukar susunan byte dan rentetan hex dengan cekap?. 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