Vous êtes sur la page 1sur 12

Représentation des réels (nombres flottants)

Source : pixees.fr
Ecriture d’un nombre flottant en base deux

En base 10 : 122,875 = 1*10² + 2*10 + 2*

En base 2 : 1011,011 =

soit

Mais comment exprimer un réel en base 2 ?


122 donne en base deux : 0111 1010
Comment exprimer 0,875 en base 2 ?

0,875 x 2= 1,75
0,75 x 2 = 1,5

On obtient une succession de

Il suffit maintenant de "prendre" tous les "a" (dans l'ordre de leur obtention)
afin d'obtenir la partie décimale de notre nombre :

On obtient donc
122,875 =
Exercices :

Trouver la représentation décimale de 1101101,011


= 109,375

Trouver la représentation binaire de 24,375


11000,011

Trouvez la représentation binaire de (0,1)10


Que remarquez-vous ?
Remarque importante :

 En base dix, il est possible d'écrire les très grands nombres et les très petits
nombres grâce aux « puissances de dix »

61154 = 6,1154x104 et 0,0061154 = 6,1154x10-3

 Il est possible de faire exactement la même chose avec une représentation binaire.
Nous sommes en base 2, nous utiliserons des "puissances de deux" à la place des
"puissances dix".

Exemples:
1101,1101= 1,1011101x211 car (11)2 correspond à (3)10

Donc l’exposant 11 correspondant à un décalage de 3 vers la droite de la virgule

De même 0,0011 = 1,1x2-11 , l’exposant -11 correspondant à un décalage de 3 vers la


gauche.
Un nombre à développement décimal fini ne l’est pas forcément en base 2
Représentation en machine d’un nombre à virgule flottante

Les machines utilisent une norme pour coder les nombres réels :
La Norme IEEE 754.
La première version de cette norme date de 1985.
Nous allons étudier deux formats associés à cette norme, le format dit "simple
précision" et le format dit "double précision".
Le format "simple précision" utilise 32 bits pour écrire un nombre flottant
Le format "double précision" utilise 64 bits.
Le nombre devra préalablement être écrit sous la forme 1,XXXXX x 2e(avec e l'exposant)
 Si le nombre est codé sur 32 bits (simple précision) mantisse
 Le bit de poids le plus fort sert à coder le signe (0 pour positif, 1 pour négatif)
 L’exposant est codé sur les 8 bits consécutifs au signe.
 La mantisse est codée sur les 23 bits restants et correspondant aux bits situés
après la virgule. Attention il y a un bit caché de la mantisse: 1 puis XXXXX

 Si le nombre est codé sur 64 bits (double précision)


 Le bit de poids le plus fort sert à coder le signe (0 pour positif, 1 pour négatif)
 L’exposant est codé sur les 11 bits consécutifs au signe.
 La mantisse est codée sur les 52 bits restants et correspondant aux bits situés
après la virgule.
EXPOSANT

Pour le format simple précision, 8 bits étant l'exposant, il est donc possible de représenter
256 valeurs comprise entre (-126)10 et (+127)10 (car -127 et +128 sont des valeurs réservées)

La principale difficulté vient du codage de l’exposant :


en effet, il nous faut pouvoir coder les exposants négatifs, or aucun bit n’est prévu pour le
signe de l’exposant.

Donc pour avoir des valeurs uniquement positives, il va falloir procéder à un décalage :
ajouter systématiquement 127 à la valeur de l'exposant.
(Pour le format double précision le décalage est de 1023)
Exemple : Codons 1101,10110110 en norme IEE 754 format simple précision

Etape 1 : On transforme l’écriture sous la forme 1,XXXXX x 2e (avec e l'exposant en base 10)

Etape 2 : L’exposant à coder est 127+3 = 130 =

(il peut être nécessaire d'ajouter des zéros pour arriver à 8 bits, ATTENTION, ces zéros
devront être rajoutés à gauche)

Etape 3 : Le nombre est de signe positif donc le bit de poids fort sera

Etape 4 : La mantisse étant sur 23 bits, nous complétons avec 9


zéros à droite :

On obtient donc
Du format IEEE 754 à une représentation en base 10.
En simple précision

Trouver le nombre à virgule correspondant à :1 10001000 11010010011110000111000

 Le premier bit est 1,


 L’exposant est codé sur 8 bits :

 Mantisse codée sur 23 bits et en ajoutant le bit implicite au début:

 Le nombre représenté est 1,822

valeur = signe × mantisse × 2(exposant − décalage) en base 10


Exercices
1. Déterminez la représentation au format simple précision en binaire et en hexadécimal de
 0,25
 214,625
2. Quelle est l’écriture hexadécimale et décimale de 11011010101101111000000000000000 ?

3. Déterminez la représentation au format simple précision de (0,1)10 en binaire

4. Soit le nombre flottant au format simple précision : 00111101110011001100110011001100.


Trouvez la représentation en base 10 de ce nombre

5. A l'aide de Python, tapez dans la console : 0.1+0.2. Que constatez-vous ?

6. Déterminez la représentation au format simple précision d'un tiers (1/3) en binaire et en


hexadécimal.

Vous aimerez peut-être aussi