Heim >Backend-Entwicklung >C++ >Wie kann ich Ganzzahlen in C effizient in Hexadezimalzeichenfolgen umwandeln?
Trotz seiner Einfachheit kann die Konvertierung von Ganzzahlen in Hex-Strings in C für Entwickler eine Herausforderung darstellen. Im Gegensatz zu C fehlt in C eine native Methode für diese Konvertierung.
Allerdings kann man die Leistungsfähigkeit des
std::cout << std::hex << your_int;
Um die Hex-String-Darstellung einer Ganzzahl für die spätere Verwendung zu erfassen, sollten Sie die Verwendung eines std::stringstream-Objekts in Betracht ziehen.
std::stringstream stream; stream << std::hex << your_int; std::string result(stream.str());
Im obigen Beispiel kann das Präfix 0x zum anfänglichen << hinzugefügt werden. Operation, falls gewünscht.
Zusätzliche wichtige Manipulatoren sind std::oct (oktal) und std::dec (dezimal).
Der Manipulator std::hex erzeugt jedoch standardmäßig eine Zeichenfolge Darstellungen, die nur die erforderliche Anzahl an Hexadezimalstellen enthalten. Wenn eine bestimmte Breite gewünscht ist, können std::setfill und std::setw verwendet werden.
stream << std::setfill('0') << std::setw(sizeof(your_type) * 2) << std::hex << your_int;
Schließlich kann eine generische Funktion definiert werden, um Ganzzahl-zu-Hex-Konvertierungen durchzuführen:
template< typename T > std::string int_to_hex( T i ) { std::stringstream stream; stream << "0x" << std::setfill ('0') << std::setw(sizeof(T)*2) << std::hex << i; return stream.str(); }
Das obige ist der detaillierte Inhalt vonWie kann ich Ganzzahlen in C effizient in Hexadezimalzeichenfolgen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!