Laboratoire 10 - Flottants
Sommaire
Rappels IEEE-754
Formats des nombres à virgule flottante:
- Simple-précision (32 bits): 1 bit de signe, 8 bits d’exposant (pôle=127), 23 bits de mantisse
- Double-précision (64 bits): 1 bit de signe, 11 bits d’exposant (pôle=1023), 52 bits de mantisse
Conversions
- Convertissez en binaire simple-précision le nombre 1664.125
- Convertissez en décimal le nombre simple-précision
42FA4000
- Convertissez en décimal le nombre simple-précision
FF800000
- Convertissez en binaire double-précision le nombre 125.25
- Convertissez en binaire simple-précision le nombre 65536
- Convertissez en binaire simple-précision le nombre 0.1
- Convertissez en binaire double-précision le nombre littéral flottant hexadécimal
0xCAFE.13371573p10
Volume
Écrivez un programme volume.s
qui demande le rayon r et la hauteur h d’un cylindre et affiche son volume
Formule: r^2 * h * pi
Note: c’est très pratique pour estimer le nombre de bocaux (en litres) quand on fait des conserves en partant des dimensions de la marmite (en décimètres).
Piscine
Étendre le programme c2f.s
vu en cours.
Ajouter un test qui affiche « Trop froid!
» si la température est inférieure à 82°F.
Perte de précision (en Java)
- Quel est le plus petit flottant simple précision positif
f
tel quef+1.0==f
?
Validez votre réponse en le programmant en Java.
Float f = 0; while (f != f+1) f++; System.out.println(Float.toHexString(f));
Vous pouvez aussi le programmer en RARS, mais le simulateur est très très lent, comptez plusieurs minutes au lieu de quelques dixièmes de secondes en Java.
- Quel est le nombre flottant simple précision
f2
plus grand quef
et le suivant tel quef2+1==f2
.
Validez votre réponse en affichant les valeurs (hexadécimales exactes) de f+1, f+2, f+3 et f+4.
- En fonction des valeurs affichées, déduisez quel est le mode d’arrondi utilisé par Java pour ses nombre flottants.