Devoir sur le codage en bases 2,10 et 16
L'usage de la calculatrice est autorisé
Exercice 1
-
Convertir le nombre \((1010101)_2\) vers la base 10.
-
Convertir le nombre \((149)_{10}\) vers la base 2.
Correction
-
\((1010101)_2=64+16+4+1=85\)
-
\(149=128+16+4+1=10010101_2\)
Exercice 2
-
Quel est l'entier relatif codé en complément à 2 sur 8 bits par le code 11001100?
-
Coder l'entier relatif -27 en complément à 2 sur 8 bits en expliquant.
Correction
-
C'est un nombre négatif car il commence par 1.
inversion : 00110011
ajout de 1 : 00110100=32+16+4=52
L'entier relatif codé par 11001100 correspond donc à -52
-
27=16+8+2+1 = 00011011
inversion : 11100100
ajout de 1 : 11100101
En complément à 2 sur 8 bits, -27 est codé par 11100101
Exercice 3
Quelle est l'écriture scientifique binaire du nombre réel qui s'écrit \((22.625)_{10}\) ? Justifier soigneusement.
Correction
Partie entière:
22=16+4+2=10110
Partie décimale:
0.625*2=1+0.25
0.25*2=0+0.5
0.5*2=1+0
D'où \((22.625)_{10}=10110.101\)
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.
-
Donner la représentation en machine sur 32 bits de \(214,875\). Puis de \(\dfrac{1}{32}\).
Correction
\(214=128+64+16+4+2=11010110\)
D'où \(214.875=11010110.111\)0.875*2=1+0.75 0.75*2=1+0.5 0.5*2=1+0
\(11010110.111=2^7 \times 1.1010110111\)
\(127+7=134=128+4+2=2^7+2^2+2^1\)
On obtient alors l'écriture en simple précision : 0 10000110 10101101110000...0
De même, on calcule: \(\dfrac{1}{32}=2^{-5}=2^{-5} \times 1.0000...000\)
Or \(-5+127=122=64+32+16+8+2=2^6+2^5+2^4+2^3+2^1\)
On obtient alors l'écriture en simple précision : 0 01111010 00...00
-
Quelle est l'écriture décimale de 1 10110101 01101111000000000000000 ?
Correction
10110101=128+32+16+4+1=181
181-127=54
\(1.011001111=1+2^{-2}+2^{-3}+2^{-5}+2^{-6}+2^{-7}+2^{-8}=1.43359375\)
L'écriture décimale de 1 10110101 01101111000000000000000 est donc environ \(-2,58 \times 10^{16}\)
Exercice 5
-
Donner en base 2 le nombre \((ABC)_{16}\)
-
Donner en héxadécimal le nombre \((1101)_{10}\).
Correction
-
A=10=8+2=1010
B=11=1011
C=12=1100
d'où \((ABC)_{16}=101010111100\)
-
Attention, on dirait que le nombre est écrit en binaire mais ça n'est pas le cas !
\((1101)_{10}=4 \times 16^{2}+4 \times 16^{1}+13 \times 16^{0}\)
D'où \((1101)_{10}=(44D)_{16}\)