Antworten:
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.
ios::fmtflags f(cout.flags());
und mit wiederherstellen out.flags(f);
.
std::cout.flags(f);
Verwenden Sie den hex
Manipulator, um den Stream so zu bearbeiten, dass er hexadezimal gedruckt wird :
cout << hex << a;
Standardmäßig werden die Hexadezimalzeichen in Kleinbuchstaben ausgegeben. Um es in Großbuchstaben zu ändern, verwenden Sie den uppercase
Manipulator:
cout << hex << uppercase << a;
Verwenden Sie den nouppercase
Manipulator, um die Ausgabe später wieder in Kleinbuchstaben umzuwandeln:
cout << nouppercase << b;
nouppercase
die Ausgabe wieder auf dezimal geändert?
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).
printf("%.2X", a);
'2' definiert die Genauigkeit, 'X' oder 'x' definiert den Fall.
printf("hello\n")
ist gleichbedeutend mit fprintf(stdout, "hello\n")
. Nützlicherweise können Sie stdout
(oder stdin
oder stderr
) 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/ .
#include <iostream>
using namespace std;
int main()
{
int num = 255;
cout.setf(ios::hex, ios::basefield);
cout << "Hex: " << num << endl;
cout.unsetf(ios::hex);
cout << "Original format: " << num << endl;
return 0;
}
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.
#include <iostream>
#include <ios>
...
std::ios_base::fmtflags f( cout.flags() ); // save flags state
std::cout << std::hex << a;
cout.flags( f ); // restore flags state
Dies kombiniert Greg Hewgills Antwort und Informationen aus einer anderen Frage .
Verwenden std::uppercase
und, std::hex
um eine Ganzzahlvariable zu formatieren a
, die im Hexadezimalformat angezeigt werden soll.
#include <iostream>
int main() {
int a = 255;
// Formatting Integer
std::cout << std::uppercase << std::hex << a << std::endl; // Output: FF
std::cout << std::showbase << std::hex << a << std::endl; // Output: 0XFF
std::cout << std::nouppercase << std::showbase << std::hex << a << std::endl; // Output: 0xff
return 0;
}
cout << hex << a << dec;
ändern.