Exercices#

Pour les exercices on donne le tableau de puissances de 2 suivant:

\(2^{1}\)

\(2^{0}\)

\(2^{-1}\)

\(2^{-2}\)

\(2^{-3}\)

\(2^{-4}\)

\(2^{-5}\)

\(2^{-6}\)

\(2^{-7}\)

\(2^{-8}\)

\(2\)

\(1\)

\(0,5\)

\(0,25\)

\(0,125\)

\(0,0625\)

\(0,03125\)

\(0,015625\)

\(0,0078125\)

\(0,00390625\)

Exercice 1#

Les nombres binaires sont à virgule fixe.

  1. Donner la valeur en écriture décimale des nombres :

    1. \(111,1\)

    2. \(10000000,00000001\)

    3. \(0,111\)

  2. Donner l’écriture en virgule flottante des nombres précédents.

Exercice 2#

On donne une méthode pour convertir un nombre en écriture décimale en écriture binaire avec une virgule fixe.

  • On convertit la partie entière (avant la virgule) comme la conversion d’un entier (non signé).

  • Pour la partie décimale (après la virgule), on applique l’algorithme suivant:

    tant que la partie décimale est différente de 0:
    
    -  on multiplie par 2 la partie décimale;
    -  le chiffre avant la virgule est la valeur du bit cherché;
    -  on recommence avec la partie décimale du résultat calculé précédemment.
    

On donne un exemple pour convertir \(2,625\) en binaire.

Le nombre \(2\) se convertit \(10\) en binaire. Appliquons l’algorithme pour \(0,625\)

  • \(0,625 \times 2 = 1,25\) donc le premier bit après la virgule vaut 1; on recommence avec \(0,25\)

  • \(0,25\times 2 = 0,5\) donc le deuxième bit après la virgule vaut 0; on recommence avec \(0.5\)

  • \(0,5 \times 2 = 1,0\) donc le troisième bit après la virgule vaut 1; la partie décimale est 0, on arête.

Conclusion : \(2,625_{10} = 10,101_{2}\)

  1. Donner l’écriture binaire du nombre \(5,6875_{10}\).

  2. Donner l’écriture binaire du nombre \(-13,15625_{10}\).

  3. Donner l’écriture binaire du nombre \(0,2_{10}\). Que remarque-t-on ?

Exercice 3#

On donne le nombre dont la représentation binaire suit la norme IEEE 754.

../_images/flottant_3.svg

Quelle est la valeur décimale de ce nombre ?

Exercice 4#

On donne ci-après un algorithme de conversion d’un nombre flottant \(x\):

on convertit la partie entière de x (vu précédemment).

on soustrait la partie entière de x à x (nombre inférieur ou égal à 1)
soit d la partie décimale de x

tant que d est différent de 0:
   d=d*2
   si d >= 1 alors :
      d=d-1
      le chiffre binaire vaut 1
   sinon
      le chiffre binaire vaut 0

Écrire un script en Python qui affiche la représentation binaire en virgule fixe.