conversion en hexadecimal
Bonjour, je veux faire un code qui convertit un hexadecimal en entier.
mais lorsque j'éxecute le code tout ce passe comme si leDecimal = LeChiffre
lorsque je tape 1 j'obtiens 17. Pouvez vous m'aider à trouver une solution.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <stdio.h>
int main(void)
{
char leHexa;
int leChiffre = 0;
int leDecimal=0;
do
{
scanf("%c",&leHexa);
if (leHexa >= '0' && leHexa <= '9')
leChiffre = leHexa - '0';
/*else if (leHexa >= 'a' && leHexa <= 'f')
leChiffre = leHexa - 'a' + 10;*/
else if (leHexa >= 'A' && leHexa <= 'F')
leChiffre = leHexa - 'A' + 10;
leDecimal = (leDecimal*16) + leChiffre;
}
while (leHexa != '\n');
printf("%d\n", leDecimal);
return 0;
} |