Réponses:
Utilisation:
#include <iostream>
...
std::cout << std::hex << a;
Il existe de nombreuses autres options pour contrôler le formatage exact du numéro de sortie , telles que les zéros non significatifs et les majuscules / minuscules.
ios::fmtflags f(cout.flags());
et le restaurer avec out.flags(f);
.
std::cout.flags(f);
Pour manipuler le flux à imprimer en hexadécimal, utilisez le hex
manipulateur:
cout << hex << a;
Par défaut, les caractères hexadécimaux sont affichés en minuscules. Pour le changer en majuscules, utilisez le uppercase
manipulateur:
cout << hex << uppercase << a;
Pour remettre ultérieurement la sortie en minuscules, utilisez le nouppercase
manipulateur:
cout << nouppercase << b;
nouppercase
- t- il changer la sortie en décimal?
Je comprends que ce n'est pas ce que OP a demandé, mais je pense toujours qu'il vaut la peine de souligner comment le faire avec printf. Je préfère presque toujours l'utiliser sur std :: cout (même sans arrière-plan C précédent).
printf("%.2X", a);
«2» définit la précision, «X» ou «x» définit la casse.
printf("hello\n")
équivaut à fprintf(stdout, "hello\n")
. Plus utilement, vous pouvez passer stdout
(ou stdin
, ou stderr
) à une fonction qui prend un FILE*
argument.
Il existe différents types de drapeaux et de masques que vous pouvez également utiliser. Veuillez consulter http://www.cplusplus.com/reference/iostream/ios_base/setf/ pour plus d'informations.
#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
vous obtient le formatage hexadécimal, mais c'est une option avec état, ce qui signifie que vous devez enregistrer et restaurer l'état ou cela aura un impact sur toutes les sorties futures.
Revenir naïvement à std::dec
n'est bon que si c'est là que les indicateurs étaient auparavant, ce qui peut ne pas être le cas, en particulier si vous écrivez une bibliothèque.
#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
Cela combine la réponse de Greg Hewgill et les informations d' une autre question .
Utilisez std::uppercase
et std::hex
pour formater la variable entière a
à afficher au format hexadécimal.
#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;
le changer.