Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan Heksadesimal kepada Tatasusunan Byte dalam C?
Penukaran Rentetan Heksadesimal kepada Tatasusunan Bait
Dalam senario pengaturcaraan, selalunya perlu untuk menukar rentetan perenambelasan, yang mewakili data binari dalam padat format, ke dalam tatasusunan bait. Tatasusunan bait lebih sesuai untuk manipulasi dan penyimpanan data langsung.
Satu pendekatan berkesan untuk penukaran ini melibatkan penggunaan fungsi strtol() standard. Fungsi ini mentafsir rentetan digit sebagai integer yang ditentukan asas, membolehkan kami mengekstrak perwakilan integer bagi aksara hex kami.
Berikut ialah pelaksanaan dalam C :
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 menggunakan gelung untuk memeriksa rentetan hex secara berulang dalam pasangan aksara. Untuk setiap pasangan, ia mencipta subrentetan mewakili bait heks tunggal dan menukarnya kepada char menggunakan strtol(), membekalkan asas 16 untuk tafsiran perenambelasan. Aksara yang terhasil kemudiannya dilampirkan pada vektor bait.
Dengan menggunakan fungsi ini, anda boleh menukar rentetan perenambelasan kepada tatasusunan bait dengan mudah, membolehkan pengendalian dan penyimpanan data binari yang cekap.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Heksadesimal kepada Tatasusunan Byte dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!