Heim >Backend-Entwicklung >C++ >Wie konvertiere ich Strings in C in Hexadezimalzahlen und zurück?
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!