Conversion de chaîne hexadécimale en tableau d'octets
Dans les scénarios de programmation, il est souvent nécessaire de convertir des chaînes hexadécimales, qui représentent des données binaires dans un format compact format, en tableaux d'octets. Les tableaux d'octets sont plus adaptés à la manipulation et au stockage directs des données.
Une approche efficace de cette conversion consiste à utiliser la fonction standard strtol(). Cette fonction interprète une chaîne de chiffres comme un entier spécifié en base, nous permettant d'extraire la représentation entière de nos caractères hexadécimaux.
Voici une implémentation en 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; }
Cette fonction utilise une boucle pour examiner de manière itérative la chaîne hexadécimale par paires de caractères. Pour chaque paire, il crée une sous-chaîne représentant un seul octet hexadécimal et la convertit en caractère à l'aide de strtol(), fournissant une base de 16 pour l'interprétation hexadécimale. Le caractère résultant est ensuite ajouté au vecteur d'octets.
En utilisant cette fonction, vous pouvez facilement convertir des chaînes hexadécimales en tableaux d'octets, permettant une gestion et un stockage efficaces des données binaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!