Heim >Backend-Entwicklung >C++ >Wie konvertiert man in C zwischen Strings und Hexadezimalzahlen?

Wie konvertiert man in C zwischen Strings und Hexadezimalzahlen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-11 12:11:14682Durchsuche

How to Convert Between Strings and Hexadecimal in C  ?

C-Konvertierung zwischen String und Hexadezimalzahl

In C können Datentypen effizient manipuliert und transformiert werden. Dazu gehören Konvertierungen zwischen Zeichenfolgen und Hexadezimalformaten.

Konvertieren von Zeichenfolgen in Hexadezimalformate

Um eine Zeichenfolge in ihre hexadezimale Darstellung umzuwandeln, besteht ein gängiger Ansatz darin, ein Zeichenarray aus hexadezimalen Ziffern zu verwenden. Hier ist ein Beispiel:

#include <string>

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;
}

In dieser Funktion werden die Hexadezimalziffern für den schnellen Zugriff in einem statischen Array gespeichert. Es durchläuft die Eingabezeichenfolge, extrahiert jedes Zeichen und stellt es als zwei hexadezimale Ziffern dar.

Hexadezimal in Zeichenfolge umwandeln

Um den Vorgang umzukehren und eine hexadezimale Zeichenfolge zurück in ihre ursprüngliche Darstellung zu konvertieren, müssen Sie kann die Funktion hex_to_string verwenden:

#include <stdexcept>

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;
}

Diese Funktion überprüft, ob die Eingabezeichenfolge eine gerade Länge hat (unter der Annahme der Gültigkeit jeder Ziffer) und verwendet die Hilfsfunktion hex_value, um einzelne hexadezimale Ziffern zu interpretieren.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in C zwischen Strings und Hexadezimalzahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn