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
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(); }
Kaedah 2: Pendekatan (untuk penukaran rentetan heksadesimal): BitConverter
public static string ByteArrayToHex(byte[] ba) { return BitConverter.ToString(ba).Replace("-", ""); }
rentetan hexadecimal ke penukaran array byte:
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; }
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!