Previous Next Up Index Contents

Exercice 8.18

#include <stdio.h>
#include <ctype.h>
 main()
{
 /* Déclarations */
 char CH[100]; /* chaîne numérique à convertir */
 long N; /* résultat numérique */
 int I;  /* indice courant */
 int OK; /* indicateur logique précisant si la */
         /* chaîne a été convertie avec succès */

 /* Saisie de la chaîne */
 printf("Entrez un nombre hexadécimal entier et positif : ");
 gets(CH);
 /* Conversion de la chaîne */
 OK=1;
 N=0;
 for (I=0; OK && CH[I]; I++)
     if (isxdigit(CH[I]))
       {
        CH[I] = toupper(CH[I]);
        if (isdigit(CH[I]))
           N = N*16 + (CH[I]-'0');
        else
           N = N*16 + 10 + (CH[I]-'A');
       }
     else
        OK=0;
 
 /* Affichage de la chaîne convertie */
 if (OK)
   {
    printf("Valeur numérique hexadécimale : %lX\n", N);
    printf("Valeur numérique décimale     : %ld\n", N);
   }
 else
    printf("\a\"%s\" n'est pas une valeur "
           "hexadécimale correcte.\n", CH);
 return 0;
}


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber