Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan Hex kepada Tatasusunan Byte dalam C?
Menukar Rentetan Heksadesimal kepada Tatasusunan Byte
Apabila bekerja dengan data binari, selalunya perlu menukar rentetan perenambelasan kepada tatasusunan bait. Rentetan heksadesimal mewakili data binari mentah dalam format perenambelasannya. Begini cara anda boleh mencapai penukaran ini dalam C menggunakan rentetan hex panjang berubah-ubah.
Untuk menukar rentetan hex "01A1" kepada tatasusunan bait, kami akan menggunakan pendekatan berikut:
std::vector<char> HexToBytes(const std::string& hex) { std::vector<char> bytes; for (unsigned int i = 0; i < hex.length(); i += 2) { std::string byteString = hex.substr(i, 2); char byte = (char)strtol(byteString.c_str(), NULL, 16); bytes.push_back(byte); } return bytes; }
Fungsi ini berulang melalui rentetan hex, mengekstrak pasangan aksara pada satu masa dan menukarnya kepada bait sepadannya menggunakan fungsi strtol(). Tatasusunan bait yang terhasil kemudian dikembalikan.
Setelah anda menukar rentetan heks kepada tatasusunan bait, anda boleh menyimpannya dalam pembolehubah jenis char* atau std::vector
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Hex kepada Tatasusunan Byte dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!