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

Bagaimana cara menukar susunan byte dengan cekap ke rentetan heksadesimal dan sebaliknya?

Susan Sarandon
Susan Sarandonasal
2025-02-03 08:09:38255semak imbas

How to Efficiently Convert Byte Arrays to Hexadecimal Strings and Vice Versa?

dengan cekap menukar array byte dan rentetan heksadesimal

Banyak aplikasi memerlukan menukar tatasusunan byte ke rentetan heksadesimal dan sebaliknya. Artikel ini menerangkan kaedah yang cekap untuk penukaran ini dalam .net.

array byte ke rentetan hexadecimal

.net 5 dan kemudian menawarkan penyelesaian paling mudah menggunakan

: Convert.ToHexString

<code class="language-csharp">byte[] byteArray = { 1, 2, 3 };
string hexString = Convert.ToHexString(byteArray); </code>
Untuk rangka kerja yang lebih tua, dua alternatif menyediakan fungsi yang sama:

kaedah 1 (menggunakan 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 (menggunakan bitconverter):

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

rentetan hexadecimal ke array byte

Menukar rentetan heksadesimal kembali ke array byte dapat dicapai dengan kaedah ini:

<code class="language-csharp">public static byte[] HexToByteArray(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>
untuk prestasi yang dipertingkatkan, menggunakan

dengan Substring secara langsung mengelakkan penukaran perantaraan yang tidak perlu. Pendekatan ini sangat bermanfaat apabila berurusan dengan susunan byte besar. Convert.ToByte

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