Heim >Backend-Entwicklung >C++ >Wie konvertiere ich Strings in C in Hexadezimalzahlen und zurück?

Wie konvertiere ich Strings in C in Hexadezimalzahlen und zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 11:25:09199Durchsuche

How to Convert Strings to Hexadecimal and Back in C  ?

Konvertieren von Strings in Hex und zurück in C

Das Manipulieren von Strings und Hexadezimalzahlen ist eine häufige Aufgabe in der Programmierung. In C stellt die Standardbibliothek eine Reihe von Funktionen für diese Operationen bereit.

String in Hex (string_to_hex)

Die Konvertierung eines Strings in Hexadezimal wird mit der Funktion string_to_hex erreicht . Die Funktion durchläuft jedes Zeichen in der Eingabezeichenfolge, extrahiert seinen Hexadezimalwert und hängt ihn an die Ausgabezeichenfolge an. Beispielsweise würde die Zeichenfolge „Hello World“ in „48656C6C6F20576F726C64“ umgewandelt.

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

Hex in String (hex_to_string)

Um eine hexadezimale Zeichenfolge zurück zu konvertieren Um eine reguläre Zeichenfolge zu konvertieren, verwenden Sie die Funktion hex_to_string. Hier wird jedes Paar hexadezimaler Ziffern in eine Ganzzahl umgewandelt und die resultierenden Ganzzahlen werden verkettet, um die Ausgabezeichenfolge zu bilden.

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

Dadurch können Sie in C mühelos zwischen Zeichenfolgen und hexadezimalen Daten konvertieren praktisch für verschiedene Programmierszenarien.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Strings in C in Hexadezimalzahlen und zurück?. 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