valeurs de cout c ++ hex?

Je veux faire:

int a = 255; cout << a; 

et l’afficher FF dans la sortie, comment ferais-je cela?

Utilisation:

 #include  ... std::cout < < std::hex << a; 

Il existe de nombreuses autres options pour contrôler la mise en forme exacte du numéro de sortie , telles que les zéros en tête et les majuscules / minuscules.

std::hex est défini dans qui est inclus par . Mais pour utiliser des choses comme std::setprecision/std::setw/std::setfill / etc, vous devez inclure .

Pour manipuler le stream à imprimer en hexadécimal, utilisez le manipulateur hex :

 cout < < hex << a; 

Par défaut, les caractères hexadécimaux sont affichés en minuscules. Pour le changer en majuscule, utilisez le manipulateur en uppercase :

 cout < < hex << uppercase << a; 

Pour modifier ultérieurement la sortie en minuscules, utilisez le manipulateur en nouppercase :

 cout < < nouppercase << b; 

Si vous souhaitez imprimer un seul nombre hexadécimal, puis revenir à la décimale, vous pouvez utiliser ceci: std::cout < < std::hex << num << std::dec << std::endl;

Je comprends que ce n’est pas ce que OP a demandé, mais je pense toujours que cela vaut la peine de le faire avec printf. Je préfère presque toujours l’utiliser sur std :: cout (même sans arrière-plan C).

 printf("%.2X", a); 

‘2’ définit la précision, ‘X’ ou ‘x’ définit la casse.

Il existe différents types de drapeaux et de masques que vous pouvez également utiliser. S’il vous plaît se référer à http://www.cplusplus.com/reference/iostream/ios_base/setf/ pour plus d’informations.

 #include  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; }