logo
Binaire & Nombres Réels

Après avoir étudié les 3 documents proposés ci-dessous, expliquant le codage des nombres réels sur un ordinateur, vous devez être capable :

  1. D'expliquer à quoi correspond le sigle IEEE ?
  2. D'expliquer la norme IEEE 754
  3. De convertir sur 8 bits la partie fractionnaire suivante (0.578125)10
  4. De convertir au format IEEE 754 (-0.078125) en simple précision.
  5. De convertir en décimal le nombre 10000011111111010000000000000002 exprimé au format IEEE 754 simple précision.
  6. D'écrire un programme python permettant de convertir un nombre décimal au format IEEE 754 simple précision.
    Ce programme retournera un t-uple (Signe,Exposant,Mantisse).

A consulter en priorité:

  1. page Arsene Perez-mas
  2. IUT Info reims
  3. Les nombres binaires à virgule flottante | Ronan Boulic

Liens complémentaires :

  1. pascal Delahaye
  2. Monnier (université de Montréal)
  3. Site du zero
  4. Villemin Gerard
  5. Informatique Lycée (David Roche)

Convertisseurs en ligne :

  1. Simple précision
  2. Double précision

Solutions des exercices de conversion :

Question 1

Expliquer à quoi correspond le sigle IEEE ?

>>> Proposition de solution - Proposition de solution - Proposition de solution <<<

Institute of Electrical and Electronics Engineers ou IEEE

Il s'agit d'une organisation qui a pour but de promouvoir la connaissance dans le domaine de l’ingénierie électrique,électronique).

Elle comprend des "comités" charger de définir différentes normes identifiées par un numéro :

  • 802 : Norme relative au fonctionnement des réseaux locaux.
  • 754 : Norme relative aux calculs sur nombres flottants.
  • etc

Question 2

  • Expliquer la norme IEEE 754
  • >>> Proposition de solution - Proposition de solution - Proposition de solution <<<
    Consulter Nombres Flottants / IUT Info reims
    

    Question 3

    Convertir sur 8 bits la partie fractionnaire suivante (0.578125)10.

    >>> Proposition de solution - Proposition de solution - Proposition de solution <<<
    0.578125 × 2 = 1.15625 --> 1
    0.15625 × 2 = 0.3125 --> 0
    0.3125 × 2 = 0.625 --> 0
    0.625 × 2 = 1.25 --> 1
    0.25 × 2 = 0.5 --> 0
    0.5 × 2 = 1.0 --> 1
    0.0 × 2 = 0.0 --> 0
    d'où l'on en déduit :
    (0.578125)10 = 0.100101002
    En effet 1x2-1 + 0x2-2 + 0x2-3 + 1x2-4 + 0x2-5 + 1x2-6 + 0x2-7 + 0x2-8
    Soit 0,5 + 0,0625 + 0,015625‬ = 0.578125
    Il s'agit donc d'une conversion sans perte.
    

    Question 4

    Convertir au format IEEE 754 (-0.078125) en simple précision.

    >>> Proposition de solution - Proposition de solution - Proposition de solution <<<
    Signe 1 bit : (-) --> 1
    0.078125 × 2 = 0.15625 --> 0
    0.15625 × 2 = 0.3125 --> 0
    0.3125 × 2 = 0.625 --> 0
    0.625 × 2 = 1.25 --> 1
    0.25 × 2 = 0.5 --> 0
    0.5 × 2 = 1.0 --> 1
    0.0 × 2 = 0.0 --> 0
    Représentation binaire : 0.0001010 (valeur absolue)
    Normalisation : 1.010 × 2−4
    Exposant réel : -4
    Exposant décalé 8 bits : (−4 + 127)10 = (123)10 = (01111011)2
    Mantisse sur 23 bits : 010000000000000000000002
    Ce qui donne : 10111101 10100000 00000000 000000002
    

    Question 5

    Convertir en décimal le nombre 010000011111111010000000000000002 exprimé au format IEEE 754 simple précision.

    >>> Proposition de solution - Proposition de solution - Proposition de solution <<<
    Signe : bit le plus à gauche = (0) donc signe +
    Exposant décalé : 10000011(2) = 131(10)
    Exposant réel : (131 − 127)(10) = 4(10)
    Mantisse M = 111 1110 1000 0000 0000 0000
    Valeur :  1.M : 1.111 1110 1
    Valeur 1.M et exposant 4 : 11111.1101
    Soit (24 +23 +22 +21 +20 +2−1 +2−2 +2−4)(10)
    Soit 31.8125(10)
    

    Question 6

    Ecrire un programme python permettant de convertir un nombre décimal au format IEEE 754 simple précision.
    Ce programme retournera un t-uple (Signe,Exposant,Mantisse).

    >>> Proposition de solution - Proposition de solution - Proposition de solution <<<
    Pensez à écrire un jeu de tests pour votre programme.
    Le faire valider par votre enseignant.