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 hexManipulator, 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 uppercaseManipulator:
cout << hex << uppercase << a;
Verwenden Sie den nouppercaseManipulator, um die Ausgabe später wieder in Kleinbuchstaben umzuwandeln:
cout << nouppercase << b;
nouppercasedie 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 stdinoder 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::decist 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::hexum 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.