Aller au contenu

04 Exos Représentation reels Correction

Exercice 1⚓︎

  • Écrire le nombre \(0,0101010101_2\) en base \(10\).
    \(0,0101010101_2 = 0 \times 2^0 + 1 \times 2^{-2} + 1 \times 2^{-4} + 1 \times 2^{-6} + 1 \times 2^{-8} + 1 \times 2^{-10} = 0,3330078125\)

  • Écrire le nombre \(11100,10001_2\) en base \(10\).
    \(11100,10001_2 = 1 \times 2^{4} + 1 \times 2^{3} + 1 \times 2^{2} + 1 \times 2^{-1} + 1 \times 2^{-5} = 28,53125\)

Exercice 2⚓︎

  • Transformer \(0,5625_{10}\) en base \(2\).
    \(0,5625 \times 2 = 1,125\), donc 1er bit : 1
    \(0,125 \times 2 = 0,25\), donc 2e bit : 0
    \(0,25 \times 2 = 0,5\), donc 3e bit : 0
    $0,5 \times 2 = 1, donc 4e bit : 1
    donc \(0,5625_{10} = 0,1001_{2}\)

  • Transformer \(0,15_{10}\) en base \(2\).
    \(0,15 \times 2 = 0,3\), donc 1er bit : 0
    \(0,3 \times 2 = 0,6\), donc 2e bit : 0
    \(0,6 \times 2 = 1,2\), donc 3e bit : 1
    \(0,2 \times 2 = 0,4\), donc 4e bit : 0
    \(0,4 \times 2 = 0,8\), donc 5e bit : 0
    \(0,8 \times 2 = 1,6\), donc 6e bit : 1
    \(0,6 \times 2 = 1,2\), donc 7e bit : 1
    ... on tourne en boucle...
    \(0,15_{10} = 0,001001100110011001....1001....\)

  • Transformer \(12,9_{10}\) en base \(2\).
    \(12_{10} = 1100\)
    \(0,9 \times 2 = 1,8\), donc 1er bit : 1
    \(0,8 \times 2 = 1,6\), donc 2e bit : 1
    \(0,6 \times 2 = 1,2\), donc 3e bit : 1
    \(0,2 \times 2 = 0,4\), donc 4e bit : 0
    \(0,4 \times 2 = 0,8\), donc 5e bit : 0
    \(0,8 \times 2 = 1,6\), donc 6e bit : 1
    ... on tourne en boucle...
    \(12,9_{10} = 1100,11100110011001100....1100....\)

Exercice 3⚓︎

Donner la représentation flottante, en simple précision, des nombres suivants :

  • \(128\)
    \(128_{10} = 2^{7} = 1,0 \times 2^{7}\)
    Code du signe positif : \(0\)
    Code de l'exposant \(= 7 + 127 = 134\) : \(10000110\)
    Mantisse : \(1,000~0000~0000~0000~0000~0000\)
    \(0 ~~~~ 1000~0110 ~~~~ 000~0000~0000~0000~0000~0000\)

  • \(-32,75\)
    \(32_{10} = 2^{5} = 100000_{2}\)
    \(0,75 \times 2 = 1,5\), donc 1er bit : 1
    \(0,5 \times 2 = 1\), donc 2e bit : 1
    \(32,75_{10} = 100000,11_{2} = 1,0000011 \times 2^{5}\)
    Code du signe négatif : \(1\)
    Code de l'exposant \(= 5 + 127 = 132\) : \(10000100\)
    Mantisse : \(1,000~0011~0000~0000~0000~0000\)
    \(1 ~~~~ 1000~0100 ~~~~ 000~0011~0000~0000~0000~0000\)

  • \(0,5625\)
    On a vu à l'exercice 2 que \(0,5625_{10} = 0,1001_{2}\)
    \(0,5625_{10} = 0,1001_{2} = 1,001 \times 2^{-1}\)
    Code du signe positif : \(0\)
    Code de l'exposant \(= -1 + 127 = 126\) : \(01111110\)
    Mantisse : \(1,001~0000~0000~0000~0000~0000\)
    \(0 ~~~~ 0111~1110 ~~~~ 001~0000~0000~0000~0000~0000\)

  • \(12,9\)
    On a vu à l'exercice 2 que \(12,9_{10} = 1100,11100110011001100....1100....\)
    \(12,9_{10} = 1,10011100110011001100....1100.... \times 2^3\)
    Code du signe positif : \(0\)
    Code de l'exposant \(= 3 + 127 = 130\) : \(10000010\)
    Mantisse : \(1,100~1110~0110~0110~0110~0110\)
    \(0 ~~~~ 1000~0010 ~~~~ 100~1110~0110~0110~0110~0110\)
    Remarque : cette représentation n'est pas exacte !

Exercice 4⚓︎

Décoder les nombres suivants donnés en simple précision, et donner leur valeur en écriture décimale :

  • \(1 ~~~~ 1000~0001 ~~~~ 001~1000~0000~0000~0000~0000\)
    Code du signe \(1\) : négatif
    Code de l'exposant \(10000001 = 128 + 1 = 129\) : exposant \(= 129 - 127 = 2\)
    Mantisse : \(1,001~1\)
    \(100,11_{2} = 4 + 0,5 + 0,25 = 4,75\)
    Le nombre codé est \(-4,75\).

  • \(0 ~~~~ 1000~0101 ~~~~ 000~0000~0100~0000~0000~0000\)
    Code du signe \(0\) : positif
    Code de l'exposant \(10000101 = 128 + 4 + 1 = 133\) : exposant \(= 133 - 127 = 6\)
    Mantisse : \(1,000~0000~01\)
    \(1000000,001_{2} = 64 + \dfrac{1}{8} = 64,125\)
    Le nombre codé est \(64,125\).

  • \(1 ~~~~ 1000~0010 ~~~~ 000~1100~0000~0000~0000~0000\)
    Code du signe \(1\) : négatif
    Code de l'exposant \(10000010 = 128 + 2 = 130\) : exposant \(= 130 - 127 = 3\)
    Mantisse : \(1,000~11\)
    \(1000,11_{2} = 8 + 0,5 + 0,25 = 8,75\)
    Le nombre codé est \(-8,75\).

Exercice 5⚓︎

Quel est le plus grand nombre réel que l'on peut représenter en flottant simple précision ?

Donner son écriture binaire, et sa valeur en écriture décimale.

Le plus grand nombre réel que l'on peut représenter en flottant simple précision est :
\(0~~~~1111~1110~~~~111~1111~1111~1111~1111~1111\)
Il vaut :
Code du signe \(0\) : positif
Code de l'exposant \(11111110 = 255 - 1 = 254\) : exposant \(= 254 - 127 = 127\)
Mantisse : \(1,111~1111~1111~1111~1111~1111\)
\(1111~1111~1111~1111~1111~1111_{2} \times 2^{104}= (2^{24} - 1) \times 2^{104} = 2^{228} - 2^{104} \approx 4,3 \times 10^{68}\)