This programme va Convertisseur octal hexadécimal et octal hexadécimal.
******************** Code source *******************
///Author: Karara Mohamed @ tutodev1.blogspot.com/
#include <stdio.h>
#include <math.h>
#include <string.h>
octal_hex (int n, hexa []);
int hex_octal (char hex []);
int main ()
{
omble hex [20], c;
int n;
printf ("Instructions: \ n");
printf ("Entrez h à convertir en hexadécimal octal: \ n");
printf ("Entrez o pour nombre hexadécimal octal: \ n");
printf ("Entrez un caractère:");
scanf ("% c", & c);
if (c == 'h' || c == 'H')
{
printf ("Entrez le nombre octal:");
scanf ("% d", & n);
octal_hex (n, hex);
printf ("nombre hexadécimal:% s", hex);
}
if (c == 'o' || c == 'O')
printf ("Entrez le nombre hexadécimal:");
scanf ("% s", hex);
printf ("nombre octal:% d", hex_octal (hex));
}
return 0;
}
octal_hex (int n, char hex []) / * fonction pour convertir octal en hexadécimal. * /
{
int i = 0, décimal = 0, rem;
while (n! = 0)
{
rem = n% 10;
n / = 10;
décimal + = rem * pow (8, i);
++ I;
}
/ * A ce point, décimale contient la valeur décimale d'un nombre octal donné. * /
i = 0;
while (décimal! = 0)
{
rem = décimal% 16;
commutateur (rem)
{
cas 10:
H [i] = 'A';
break;
cas 11:
H [i] = 'B';
break;
cas 12:
H [i] = 'C';
break;
cas 13:
H [i] = 'D';
break;
cas 14:
H [i] = 'E';
break;
cas 15:
H [i] = 'F';
break;
défaut:
H [i] = rem + '0';
break;
}
++ I;
décimal / = 16;
}
H [i] = '\ 0';
strrev (hex); / * Fonction d'inverser chaîne. * /
}
int hex_octal (char hex []) / * Fonction de convertir en hexadécimal en octal. * /
{
int i, longueur, décimal = 0, octal = 0;
pour (longueur = 0;! hex [longueur] = '\ 0'; ++ longueur);
for (i = 0; H [i] = '\ 0';! i ++, --length)
{
si (H [i]> = '0' && H [i] <= '9')
décimal + = (H [i] - '0') * pow (16, longueur-1);
si (H [i]> = 'A' && H [i] <= 'F')
décimal + = (H [i] -55) * pow (16, longueur-1);
si (H [i]> = 'a' && H [i] <= 'f')
décimal + = (H [i] -87) * pow (16, longueur-1);
}
/ * A ce point décimal contient la valeur décimale d'un nombre hexadécimal donné. * /
i = 1;
while (décimal! = 0)
{
octal + = (décimal% 8) * i;
décimal / = 8;
i * = 10;
}
retourner octal;
}