Ich will das tun:
int a = 255;
cout << a;
und muss es FF in der Ausgabe anzeigen, wie würde ich das tun?
Verwenden:
#include <iostream>
...
std::cout << std::hex << a;
Es gibt viele andere Optionen, um die genaue Formatierung der Ausgabenummer zu steuern , z. B. führende Nullen und Groß- / Kleinschreibung.
cout << hex << a << dec;
ändern.ios::fmtflags f(cout.flags());
und mit wiederherstellenout.flags(f);
.std::cout.flags(f);
std::hex
ist definiert in<ios>
dem enthalten ist durch<iostream>
. Aber um Dinge wiestd::setprecision/std::setw/std::setfill
/ etc zu benutzen , muss man einschließen<iomanip>
.quelle
Verwenden Sie den
hex
Manipulator, um den Stream so zu bearbeiten, dass er hexadezimal gedruckt wird :Standardmäßig werden die Hexadezimalzeichen in Kleinbuchstaben ausgegeben. Um es in Großbuchstaben zu ändern, verwenden Sie den
uppercase
Manipulator:Verwenden Sie den
nouppercase
Manipulator, um die Ausgabe später wieder in Kleinbuchstaben umzuwandeln:quelle
nouppercase
die Ausgabe wieder auf dezimal geändert?Wenn Sie eine einzelne Hex-Zahl drucken und dann wieder auf die Dezimalzahl zurücksetzen möchten, können Sie Folgendes verwenden:
quelle
Ich verstehe, dass OP nicht darum gebeten hat, aber ich denke immer noch, dass es sich lohnt, darauf hinzuweisen, wie man es mit printf macht. Ich bevorzuge es fast immer gegenüber std :: cout (auch ohne vorherigen C-Hintergrund).
'2' definiert die Genauigkeit, 'X' oder 'x' definiert den Fall.
quelle
printf("hello\n")
ist gleichbedeutend mitfprintf(stdout, "hello\n")
. Nützlicherweise können Siestdout
(oderstdin
oderstderr
) an eine Funktion übergeben, die a übernimmtFILE*
Argument akzeptiert.Es gibt verschiedene Arten von Flaggen und Masken, die Sie ebenfalls verwenden können. Weitere Informationen finden Sie unter http://www.cplusplus.com/reference/iostream/ios_base/setf/ .
quelle
std::hex
Sie erhalten die Hex-Formatierung, dies ist jedoch eine statusbehaftete Option. Dies bedeutet, dass Sie den Status speichern und wiederherstellen müssen, da dies Auswirkungen auf alle zukünftigen Ausgaben hat.Ein naives Zurückschalten
std::dec
ist nur dann gut, wenn sich dort zuvor die Flags befanden, was möglicherweise nicht der Fall ist, insbesondere wenn Sie eine Bibliothek schreiben.Dies kombiniert Greg Hewgills Antwort und Informationen aus einer anderen Frage .
quelle
Verwenden
std::uppercase
und,std::hex
um eine Ganzzahlvariable zu formatierena
, die im Hexadezimalformat angezeigt werden soll.quelle