Conversion hexadecimal -> decimal ( et contraire) en C
cs_Arrakis
Messages postés4Date d'inscriptionjeudi 25 avril 2002StatutMembreDernière intervention 4 mai 2002
-
3 mai 2002 à 22:56
Croqmort
Messages postés95Date d'inscriptionmercredi 5 décembre 2001StatutMembreDernière intervention27 juin 2006
-
5 mai 2002 à 23:36
Bonjour,
Je ne connais pas de fonction pour realiser cette conversion du decimal vers l'hexa, si vous avez une idée
merci
Arrakis
A voir également:
Hexadecimal en decimal
Convertir hexadécimal en décimal - Meilleures réponses
Conversion hexadecimal en decimal - Meilleures réponses
cs_Arrakis
Messages postés4Date d'inscriptionjeudi 25 avril 2002StatutMembreDernière intervention 4 mai 2002 4 mai 2002 à 13:24
merci, je connais les fonction pour un affichage , mais là j'ai des claculs a faire dans mon programme et ma variable en decimal doit obligatoirement etre convertis en hexa
Blustuff
Messages postés20Date d'inscriptionjeudi 7 mars 2002StatutMembreDernière intervention27 juin 2007 5 mai 2002 à 20:30
Ca dépend pour quoi faire... A la base, les variables ne sont ni en héxa ni en décimal mais en binaire... Alors la conversion dépend de ton format de déparrt et le format auquel tu veux arriver.
Si c'est pour convertir une chaine, il faut que tu convertisse toi même.
char* Chaine; //Nombre en décimal
int ValeurNumerique = 0;
for (int n 1, x 0 ; x < strlen(Chaine) ; x++)
{
ValeurNumerique += (Chaine[x] - '0') * n
n *= 10; //remplace 10 par la base de départ
}
for (int x = 0 ; ValeurNumerique > 0 ; x++)
{
//remplace 16 par la base d'arrivé
Chaine[x] = ValeurNumerique % 16;
ValeurNumerique /= 16;
}
Bon mon code ne s'adapte pas vraiment a tous les contextes a toi de voir la déclaration dynamique ou non de Chaine.
Croqmort
Messages postés95Date d'inscriptionmercredi 5 décembre 2001StatutMembreDernière intervention27 juin 2006 5 mai 2002 à 23:36
pour convertir un nombre en hexa ou en decimal on peut utiliser sprintf :
char buffer[16];
sprintf(buffer,"%d",0x1A5);
ou
char buffer[16];
sprintf(buffer,"%X",150);