Konvertieren von Zeichenfolgen zwischen hex-format und Binär-format
Gibt es irgendein utility oder Bibliothek bietet eine einfache Funktion zum konvertieren eines Strings zwischen hex/binary-format? Ich habe lange gesucht auf SO und derzeit mit look-up-table-Ansatz. Durch die Art und Weise, denn es könnte sein, eine lange Zeichenfolge, würde ich es nicht betrachten, konvertieren Sie die Zeichenfolge in eine ganze Zahl, und verarbeiten Sie die format-Konvertierung, wie eine lange Zeichenfolge kann größer sein, als MAX_INT (oder anderen integer-Datentypen).
Beispiel:
0xA1 => 10100001
11110001 => 0xF1
PS: Mein Projekt ist mit Boost 1.44, ein bisschen out-dated. Also, wenn das Dienstprogramm von Boost, hoffentlich ist es in 1.44.
Welche Art von "hex/Binär format"? Pflege geben Sie einige Beispiel?
InformationsquelleAutor Stan | 2013-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine Kombination von
std::stringstream
,std::hex
undstd::bitset
konvertieren zwischen hex und Binär in C++03.Hier ein Beispiel:
EDIT:
Über die raffinierte Frage, hier ist ein code-Beispiel zum konvertieren zwischen hex-strings und binären strings (Sie können umgestalten, mit einer helper-Funktion für die hex char<>bits Teil, und verwenden Sie eine Karte oder einen Schalter statt, etc).
InformationsquelleAutor Silex
Den folgenden code enthält zwei Funktionen, die genau das tun, was Sie wünschen. Dies ist auf der Grundlage der Antwort von Silex, aber mit ein paar string-Operationen entsprechen der Beispiel-Ausgabe gab Sie in Ihre Frage.
InformationsquelleAutor ilent2
Die einfachste Lösung ohne Verwendung bitset und eine Bücherei, die nur mit den shift-Operatoren und std::hex zu konvertieren, das ganze hex-string.
Beispiel-code zu konvertieren hex-string nach Binär-Ziffern :
Beispiel-Ausgabe :
voll codestück
InformationsquelleAutor HaSeeB MiR
Wenn Sie möchten, eine präzise Lösung in reinem c++11. Hier gehen Sie:
Dieser Arbeit für jede Länge der Zeichenfolge mit keine Polsterung erforderlich.
Sollte Recht schnell gehen, da es keine langen switch-Case-Anweisungen und bit-Operationen schnell sind.
Beispiel:
InformationsquelleAutor Anant Prakash