Soit la représentation en virgule fixe 1.15 en complément à 2 sur 16 bits, où la virgule est à droite du bit de poids fort et où les 15 bits à droite de la virgule correspondent aux puissances 2-i. Cette représentation permet de représenter des nombres entre -1 et 1-2-15.
Écrire la fonction C qui permet de convertir un nombre virgule fixe 1.15 en nombre flottant simple précision pour pouvoir afficher sa valeur à l’aide des formats d’impression flottant %f ou %d de C.
Pour tester la conversion virgule fixe vers virgule flottante, on entrera un nombre signé 16 bits (short) et l’on vérifiera son interprétation 1.15 après conversion en flottant.
Aide :
Le programme C suivant permet d’afficher le contenu hexadécimal du codage d’une variable de type
float : ca et &a correspondent à la même adresse.
a est la variable flottante, et *
ca est le contenu de la même variable, mais interprété comme un entier et affiché en hexadécimal (%x).
1 2 3 4 5 6 7
| main()
{
float a=10.0;
int *ca;
ca = (int *)&a;
printf("codage du flottant = %x \n", *ca);
} |
Partager