UAA 10    HW-Data

Norme IEEE 754 : normalisation et exposant décalé

1. Forme générale d’un nombre flottant

En IEEE 754, un nombre flottant normalisé s’écrit sous la forme :

(-1)^{signe} × 1.mantisse × 2^{exposant_réel}

La partie significative commence toujours par 1. : c’est la normalisation du nombre.

2. Normalisation d’un nombre binaire

Objectif : obtenir une forme du type 1.xxxxx × 2^n.

Exemple 1

101.101₂ = 1.01101₂ × 2²

Exemple 2

0.0001011₂ = 1.011₂ × 2⁻⁴

Le 1 initial de la forme normalisée n’est pas stocké dans la mantisse : il est implicite. Cela permet de gagner un bit de précision.

3. Structure d’un flottant IEEE 754

Pour le format simple précision (32 bits) :

Pour le format double précision (64 bits) :

4. L’exposant décalé (bias)

L’exposant réel peut être négatif. Pour éviter de stocker un entier signé, IEEE 754 utilise un décalage (bias).

Valeurs du bias

Relation :

exposant_stocké = exposant_réel + bias

Exemples en simple précision (32 bits)

Exposant réel Exposant stocké (décimal) Exposant stocké (binaire)
012701111111
313010000010
-412301111011

5. Exemple complet : encodage de 5,75 en IEEE 754 simple précision

Étape 1 : conversion en binaire

5,75 = 5 + 0,75 = 101,11₂

Étape 2 : normalisation

101,11₂ = 1,0111₂ × 2²

Étape 3 : calcul de l’exposant stocké

exposant_stocké = 2 + 127 = 129

129 en binaire = 10000001.

Étape 4 : bit de signe

5,75 est positif → signe = 0.

Résultat final (32 bits)

signe      : 0
exposant   : 10000001
mantisse   : 01110000000000000000000

Nombre IEEE 754 (float 32 bits) :
0 10000001 01110000000000000000000
  

6. Résumé

Exemple complet avec 67,452

1. Bit de signe

Le nombre est positif :

signe = 0

2. Conversion en binaire

Partie entière

67 = 64 + 3 = 2⁶ + 2¹ + 2⁰

67₁₀ = 1000011₂

Partie fractionnaire

Conversion par multiplications successives :

0,452 × 2 = 0,904 → 0
0,904 × 2 = 1,808 → 1
0,808 × 2 = 1,616 → 1
0,616 × 2 = 1,232 → 1
0,232 × 2 = 0,464 → 0
0,464 × 2 = 0,928 → 0
0,928 × 2 = 1,856 → 1
0,856 × 2 = 1,712 → 1
0,712 × 2 = 1,424 → 1
0,424 × 2 = 0,848 → 0
...
  

Donc :

0,452₁₀ ≈ 0,0111001101₂

Assemblage

67,452₁₀ ≈ 1000011,0111001101₂

3. Normalisation

On veut une forme 1.xxxxx × 2ⁿ :

1000011,0111001101₂ = 1,0000110111001101₂ × 2⁶

Donc :

4. Exposant décalé (bias)

En simple précision, le bias = 127.

exposant_stocké = 6 + 127 = 133

133 en binaire :

133 = 10000101₂

5. Mantisse (23 bits)

À partir de :

1,0000110111001101...

Mantisse sur 23 bits :

00001101110011011001100

6. Résultat final IEEE 754 (32 bits)

signe      : 0
exposant   : 10000101
mantisse   : 00001101110011011001100
  

Nombre final :

0 10000101 00001101110011011001100

Ce motif binaire est l’approximation IEEE 754 simple précision du nombre 67,452.