Maison >développement back-end >C++ >Comment convertir efficacement une chaîne hexadécimale en un tableau d'octets en C ?
Conversion de chaîne hexadécimale en tableau d'octets
La conversion d'une chaîne hexadécimale de longueur variable en tableau d'octets est une tâche courante en programmation, permettant la représentation de données binaires dans un format lisible par l'homme. Voici comment y parvenir efficacement :
Pour convertir une chaîne hexadécimale telle que "01A1" en un tableau d'octets, nous pouvons exploiter la fonction strtol() intégrée pour effectuer la conversion. L'implémentation suivante crée un std::vector de caractères pour stocker le tableau d'octets :
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; }
Cette approche fonctionne pour toute chaîne hexadécimale de longueur paire. La fonction strtol() prend un pointeur vers le tableau de caractères byteString.c_str() et la base (16 pour hexadécimal).
En utilisant cette fonction HexToBytes(), vous pouvez facilement convertir une chaîne hexadécimale en octet tableau, vous permettant de travailler avec des données binaires de manière pratique et flexible.
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!