web-dev-qa-db-fra.com

Fonction décimale de conversion décimale en hexadécimal c ++

Existe-t-il une fonction intégrée en c ++ qui prendrait une entrée décimale d'un utilisateur et la convertirait en hexadécimal et vice versa ?? Je l'ai essayé en utilisant une fonction que j'ai écrite mais je me demandais s'il y en avait une intégrée pour minimiser un peu le code. Merci d'avance.

8
user3002197

Décimal en hex: -

std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );

std::cout << res;

Hex en décimal: -

std::stringstream ss;
ss  << hex_value ; // std::string hex_value
ss >> std::hex >> decimal_value ; //int decimal_value

std::cout << decimal_value ;

Réf: std::hex , std::stringstream

26
P0W

De nombreux compilateurs prennent en charge la fonction itoa (qui apparaît dans la norme POSIX mais pas dans les normes C ou C++). Visual C++ l'appelle _itoa.

#include <stdlib.h>

char hexString[20];
itoa(value, hexString, 16);

Notez qu'il n'existe pas de valeur décimale ou hexadécimale. Les valeurs numériques sont toujours stockées en binaire. Seule la représentation sous forme de chaîne du nombre a un radix particulier (base).

Bien sûr, en utilisant le %x Le spécificateur de format avec l'une des fonctions printf est bon lorsque la valeur est censée être affichée dans un message plus long.

7
Ben Voigt