Convertisseur ISN
Par Plum05 • 2 Décembre 2017 • 968 Mots (4 Pages) • 572 Vues
...
binaireVERSdecimal(int nb) // fonction de conversion du binaire vers le decimal
{
int decimal=0, reste, i=0;// declaration des variables necessaire au calcul
while (nb!=0) // condition d’arret
{
reste = nb%10;
nb/=10;
decimal += reste*pow(2,i); // pow est la fonction qui permet d’elever un nombre a une puissance donnee*/
++i; // incrementation de la variable
}
return decimal;
}
void decimalVERShexadecimal(int nb) // fontion de conversion decimal vers l’hexadecimal
{
printf("\nLe nombre decimal %d est egal a ---> ",nb);
int reste[50],i=0,longueur=0;
while(nb>0) // algortihme pour la ocnversion
{
reste[i]=nb%16;
nb=nb/16;
i++;
longueur++;
}
for(i=longueur-1;i>=0;i--)
{
switch(reste[i]) // instructions exécutées pour les cases 10,11,12,13,14,15
{
case 10: // pour 10 afficher A
printf("A");
break; // fin de la condition
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
default : // afficher reste[i] pour tout autre valeur des cases
printf("%d",reste[i]);
}
}
printf(" <--- en hexadecimal. \n\n");
}
void hexadecimalVERSdecimal() // fonction de conversion de l’hexadecimal vers le decimal
{
printf("\nVous avez choisi la conversion hexadecimal vers decimal. \n\n Entrez le nombre hexadecimal a convertir s’il vous plait : ");
char Hexa[24];
int i=0,nb=0,imax;
scanf("%s", Hexa);
imax = strlen(Hexa); // strlen permet de retourner la valeur hexa de la châine de caractère
for(i=0;i<imax;i++)
{
if((Hexa[i]>=65)||(Hexa[i]<=70)) //valeur du tableau ASCII
nb=nb+(Hexa[i]-55)*pow(16,i);
else if((Hexa[i]>=97)&&(Hexa[i]<=102))
nb=nb+(Hexa[i]-87)*pow(16,i);
else if((Hexa[i]>=48)&&(Hexa[i]<=57))
nb=nb+(Hexa[i]-48)*pow(16,i);
else
{
printf("\n Erreur vous n’avez pas rentre un nombre hexadecimal.\n");
}
}
if(i==imax)
printf("\n Votre nombre hexadecimal est egal a ---> %d <--- en decimal.\n",nb);
...