Maison > développement back-end > C++ > Comment convertir des chaînes en hexadécimal et inversement en C ?

Comment convertir des chaînes en hexadécimal et inversement en C ?

Mary-Kate Olsen
Libérer: 2024-12-19 11:25:09
original
206 Les gens l'ont consulté

How to Convert Strings to Hexadecimal and Back in C  ?

Conversion de chaînes en hexadécimal et inversement en C

La manipulation de chaînes et de nombres hexadécimaux est une tâche courante en programmation. En C , la bibliothèque standard fournit un ensemble de fonctions pour ces opérations.

String to Hex (string_to_hex)

La conversion d'une chaîne en hexadécimal est réalisée à l'aide de la fonction string_to_hex . La fonction parcourt chaque caractère de la chaîne d'entrée, extrait sa valeur hexadécimale et l'ajoute à la chaîne de sortie. Par exemple, la chaîne "Hello World" serait convertie en "48656C6C6F20576F726C64".

std::string string_to_hex(const std::string& input)
{
    static const char hex_digits[] = "0123456789ABCDEF";

    std::string output;
    output.reserve(input.length() * 2);
    for (unsigned char c : input)
    {
        output.push_back(hex_digits[c >> 4]);
        output.push_back(hex_digits[c & 15]);
    }
    return output;
}
Copier après la connexion

Hex en chaîne (hex_to_string)

Pour reconvertir une chaîne hexadécimale à une chaîne normale, utilisez la fonction hex_to_string. Ici, chaque paire de chiffres hexadécimaux est convertie en un entier et les entiers résultants sont concaténés pour former la chaîne de sortie.

std::string hex_to_string(const std::string& input)
{
    const auto len = input.length();
    if (len & 1) throw std::invalid_argument("odd length");

    std::string output;
    output.reserve(len / 2);
    for (auto it = input.begin(); it != input.end(); )
    {
        int hi = hex_value(*it++);
        int lo = hex_value(*it++);
        output.push_back(hi << 4 | lo);
    }
    return output;
}
Copier après la connexion

Cela vous permet de convertir sans effort entre une chaîne et des données hexadécimales en C, ce qui en fait pratique pour divers scénarios de programmation.

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