Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan Cekap Menukar Rentetan Hex kepada Array Byte dalam C?
Penukaran Rentetan Hex kepada Tatasusunan Byte
Menukar rentetan hex panjang berubah kepada tatasusunan bait ialah tugas biasa dalam pengaturcaraan, membolehkan perwakilan data binari dalam format yang boleh dibaca manusia. Begini cara untuk mencapai ini dengan cekap:
Untuk menukar rentetan heks seperti "01A1" kepada tatasusunan bait, kita boleh memanfaatkan fungsi strtol() terbina dalam untuk melaksanakan penukaran. Pelaksanaan berikut mencipta std::vektor aksara untuk menyimpan tatasusunan bait:
std::vector<char> HexToBytes(const std::string& hex) { std::vector<char> bytes; // Loop through the hex string in pairs of characters for (unsigned int i = 0; i < hex.length(); i += 2) { // Extract the current pair of characters std::string byteString = hex.substr(i, 2); // Convert the pair to a char using strtol() char byte = (char)strtol(byteString.c_str(), NULL, 16); // Append the char to the byte array bytes.push_back(byte); } // Return the byte array return bytes; }
Pendekatan ini berfungsi untuk sebarang rentetan hex panjang genap. Fungsi strtol() mengambil penuding kepada tatasusunan aksara byteString.c_str() dan asas (16 untuk perenambelasan).
Dengan menggunakan fungsi HexToBytes() ini, anda boleh menukar rentetan hex kepada bait dengan mudah tatasusunan, membolehkan anda bekerja dengan data binari dengan cara yang mudah dan fleksibel.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan Hex kepada Array Byte dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!