Maison > développement back-end > C++ > Comment convertir une chaîne hexadécimale en tableau d'octets en C ?

Comment convertir une chaîne hexadécimale en tableau d'octets en C ?

Susan Sarandon
Libérer: 2024-12-24 11:50:14
original
538 Les gens l'ont consulté

How to Convert a Hexadecimal String to a Byte Array in C  ?

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal