Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menukar susunan byte dengan cekap ke rentetan heksadesimal dan sebaliknya?
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!