Aller au contenu

Devoir sur le codage en bases 2,10 et 16

L'usage de la calculatrice est autorisé

Exercice 1

  1. Convertir le nombre \((10111)_2\) vers la base 10.

  2. Convertir le nombre \((78)_{10}\) vers la base 2.

Correction
  1. \(10111_2=16+4+2+1=23\)

  2. \(78=64+8+4+2=1001110_2\)

Exercice 2

  1. Quel est l'entier relatif codé en complément à 2 sur 8 bits par le code 11011000?

  2. Coder l'entier relatif -17 en complément à 2 sur 8 bits en expliquant.

  3. Quel est le plus grand nombre que l'on peut écrire en complément à 2 sur 10 bits ?

Correction
  1. C'est un nombre négatif car il commence par 1.

    inversion : 00100111

    ajout de 1 : 00101000=32+8=40

    L'entier relatif codé par 11011000 correspond donc à -40

  2. 17=16+1 = 00010001

    inversion : 11101110

    ajout de 1 : 11101111

    En complément à 2 sur 8 bits, -17 est codé par 11101111

  3. Le plus grand nombre (donc positif) que l'on peut écrire est \(0111111111=2^9-1=511\)

Exercice 3

Quelle est l'écriture scientifique binaire du nombre réel qui s'écrit \((19.3125)_{10}\) ? Justifier soigneusement.

Correction
Partie entière:
19=16+2+1=10011

Partie décimale:
0.3125*2=0+0.625
0.625*2=1+0.25
0.25*2=0+0.5
0.5*2=1+0

D'où \((19.3125)_{10}=10011.0101\)

Exercice 4

Vous connaissez le codage sur 64 bits appelé « double précision ». Le codage sur 32 bits est appelé « simple précision ». L'exposant est alors codé sur 8 bits et le décalage est de 127, non pas 1023.

  1. Donner la représentation en machine sur 32 bits de \(14,4375\). Puis de \(\dfrac{1}{64}\).

    Correction

    \(14=8+4+2=1110\)

    0.4375*2=0+0.875
    0.875*2=1+0.75
    0.75*2=1+0.5
    0.5*2=1+0
    
    D'où \(14.4375=1110.0111\)

    \(1110.0111=2^3 \times 1.1100111\)

    \(127+3=130=128+2=2^7+2^1\)

    On obtient alors l'écriture en simple précision : 0 10000010 11001110000...0

    De même, on calcule: \(\dfrac{1}{64}=2^{-6}=2^{-6} \times 1.0000...000\)

    Or \(-6+127=121=64+32+16+8+1=2^6+2^5+2^4+2^3+2^0\)

    On obtient alors l'écriture en simple précision : 0 01111001 00...00

  2. Quelle est l'écriture décimale de 1 10110101 01100111000000000000000 ?

    Correction

    10110101=128+32+16+4+1=181

    181-127=54

    \(1.01100111=1+2^{-2}+2^{-3}+2^{-6}+2^{-7}+2^{-8}=1.40234375\)

    L'écriture décimale de 1 10110101 01100111000000000000000 est donc environ \(-2,53 \times 10^{16}\)

Exercice 5

  1. Donner en base 2 le nombre \((BAC)_{16}\)

  2. Donner en héxadécimal le nombre \((101010)_{10}\).

Correction
  1. A=10=8+2=1010

    B=11=1011

    C=12=1100

    d'où \((BAC)_{16}=101110101100\)

  2. Attention, on dirait que le nombre est écrit en binaire mais ça n'est pas le cas !

    \((101010)_{10}=1 \times 16^4+8 \times 16^{3}+10 \times 16^{2}+9 \times 16^{1}+2 \times 16^{0}\)

    D'où \((101010)_{10}=(18A92)_{16}\)