Probleme pour un convertisseur hexadecimal

jekburn Messages postés 26 Date d'inscription jeudi 11 novembre 2004 Statut Membre Dernière intervention 29 octobre 2009 - 11 déc. 2004 à 19:18
cs_kelsey Messages postés 35 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 11 décembre 2004 - 11 déc. 2004 à 20:36
Bonsoir,

#include<stdio.h>

int main(){

char *ch;
int i,n,reste;

printf("Rentrer un nombre:");
scanf("%d",&n);
while(n>0)
{
reste=n%16;
ch[i]=reste;
if(reste==10)
{
ch[i]='a';
}
if(reste==11)
{
ch[i]='b';
}
if(reste==12)
{
ch[i]='c';
}
if(reste==13)
{
ch[i]='d';
}
if(reste==14)
{
ch[i]='e';
}
if(reste==15)
{
ch[i]='f';
}
printf("%4s",ch);
n=n/16;
i++;
}

}

Je n'arrive à faire afficher les lettres pour mon convertiseur décimal vers hexadecimal.
D'ou viens le probleme.
Merci
:)

3 réponses

boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
11 déc. 2004 à 19:42
printf("%X",varable)
permet de convertir une variable en hexadecimal
0
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
11 déc. 2004 à 20:21
Avant tout, n'oublie jamais d'initialiser ton i (surtout si tu t'en sers comme index pour une chaîne de caractères)... et aussi de placer le zéro terminal à la fin de cette chaîne
Ensuite, il faut additionner 48 à la valeur reste (code ASCII de '0'), et enfin, je te laisse le dernier problème, le code HEXA est bien retourné mais à l'envers ( 127 doit donner 7F et pas F7 )... Bon courage....

Soit tu pars sur un autre algo, soit tu renverse la chaîne (sujet dans le forum il y a quelques jours)

#include<stdio.h>

int main(){

char *ch;
int i,n,reste;

printf("Rentrer un nombre:");
scanf("%d",&n);
i=0;
while(n>0)
{
reste=n%16;
ch[i]=reste+48;
if(reste==10)
{
ch[i]='a';
}
if(reste==11)
{
ch[i]='b';
}
if(reste==12)
{
ch[i]='c';
}
if(reste==13)
{
ch[i]='d';
}
if(reste==14)
{
ch[i]='e';
}
if(reste==15)
{
ch[i]='f';
}

n=n/16;
i++;
}
ch[i]=0;
printf("%4s\n",ch);

}

6co
0
cs_kelsey Messages postés 35 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 11 décembre 2004
11 déc. 2004 à 20:36
Ou est ce que ton entier i est initialisé?
Parce que tu l'incrémente mais a quelle valeur il commence ...
0
Rejoignez-nous