Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan Hex kepada Array Byte atau Array Aksara dalam C?
Menukar Rentetan Hex kepada Tatasusunan Bait
Dalam bidang pengendalian data, sering kali menjadi perlu untuk menukar rentetan heks kepada tatasusunan bait untuk memudahkan penyimpanan dan pemprosesan yang cekap. Proses ini melibatkan menterjemah setiap pasangan digit perenambelasan ke dalam perwakilan binari yang sepadan.
Menukar Rentetan Hex kepada Tatasusunan Aksara
Jika anda ingin menukar rentetan heks kepada aksara tatasusunan, anda boleh memanfaatkan kod 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; }
Pelaksanaan ini memanfaatkan fungsi strtol() intrinsik yang cekap mengubah teks menjadi bait. Terutamanya, ia mampu mengendalikan sebarang rentetan hex panjang genap.
Contoh:
std::string hex = "01A1"; auto bytes = HexToBytes(hex);
Kod ini menukar rentetan hex "01A1" kepada tatasusunan aksara bernama bait yang mengandungi data binari. Selepas itu, anda boleh menulis data ini pada fail dan memeriksanya menggunakan hexdump -C untuk mengesahkan ketepatannya.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Hex kepada Array Byte atau Array Aksara dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!