1) Exprimer les entiers signés 125, −125, 0, 175 et −100
dans une forme
binaire sur 8 bits en utilisant :
a) le complément à 2.
b) la représentation par excès (d = 2⁷)
Résolution numéro 1
a) Complément à 2 :
- Pour l'entier signé 125 :
0 * 2^0 = 0
1 * 2^1 = 2
1 * 2^2 = 4
1 * 2^3 = 8
1 * 2^4 = 16
1 * 2^5 = 32
0 * 2^6 = 0
1 * 2^7 = 128
En additionnant tous ces résultats, nous obtenons:
0 + 2 + 4 + 8 + 16 + 32 + 0 + 128 = 190
125 en binaire sur 8 bits = 01111101
- Pour l'entier signé -125 :
125 / 2 = 62 reste 1
62 / 2 = 31 reste 0
31 / 2 = 15 reste 1
15 / 2 = 7 reste 1
7 / 2 = 3 reste 1
3 / 2 = 1 reste 1
1 / 2 = 0 reste 1
Pour obtenir le complément à 2 de -125, on commence
par prendre le complément de sa valeur absolue (125)
en inversant tous les bits :
Complément de 125 en binaire sur 8 bits = 10000010
Ensuite, on ajoute 1 au résultat obtenu pour obtenir le
complément à 2 :
Complément à 2 de -125 en binaire sur 8 bits =
10000011
- Pour l'entier signé 0,175 :
175 en binaire sur 8 bits = 10101111
0,175 * 2 = 0,35 --> premier bit binaire = 0
0,35 * 2 = 0,7 --> deuxième bit binaire = 0
0,7 * 2 = 1,4 --> troisième bit binaire = 1
0,4 * 2 = 0,8 --> quatrième bit binaire = 0
0,8 * 2 = 1,6 --> cinquième bit binaire = 1
0,6 * 2 = 1,2 --> sixième bit binaire = 1
0,2 * 2 = 0,4 --> septième bit binaire = 0
0,4 * 2 = 0,8 --> huitième bit binaire = 0
En lisant les bits de haut en bas, nous obtenons la
représentation binaire de 0,175 sur 8 bits: 01101100.
- Pour l'entier signé -100 :
Pour obtenir le complément à 2 de -100, on commence
par prendre le complément de sa valeur absolue (100)
en inversant tous les bits :
Complément de 100 en binaire sur 8 bits = 01100100
Ensuite, on ajoute 1 au résultat obtenu pour obtenir le
complément à 2 :
Complément à 2 de -100 en binaire sur 8 bits
=01100101
b) Représentation par excès (d=2^7):
- Pour l'entier signé positif ou nul, la représentation est
identique à celle du complément à deux.
- Pour l'entier signé négatif, on ajoute d (ici d=128) à la
valeur absolue de cet entier et on représente le résultat
en binaire sur 8 bits.
- Pour l'entier signé 125 :
125 en binaire sur 8 bits = 01111101
- Pour l'entier signé -125 :
-125 + 128 = 3
3 en binaire sur 8 bits = 00000011
- Pour l'entier signé 0 :
0 en binaire sur 8 bits = 00000000
- Pour l'entier signé 175 :
175 en binaire sur 8 bits = 10101111
- Pour l'entier signé -100 :
-100 + 128 = 28
28 en binaire sur 8 bits =00011100
2) Traduire les nombres binaires 0000 0011, 1000 0001
et 1111 1111 dans la forme décimale selon que la
représentation utilisée est :
a) la représentation binaire classique
b) le complément à 2
c) la représentation par excès (d= 2^7)
Résolution numéro 2
a) Pour la représentation binaire classique, les nombres
binaires se traduisent en décimal en utilisant la formule
suivante :
Nombre décimal = (bit1 * 2^7) + (bit2 * 2^6) + (bit3 *
2^5) + (bit4 * 2^4) + (bit5 * 2^3) + (bit6 * 2^2) + (bit7 *
2^1) + (bit8 * 2^0)
Pour le nombre binaire 0000 0011 :
Nombre décimal = (0 * 2^7) + (0 * 2^6) + (0 * 2^5) + (0 *
2^4) + (0 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0)
=0+0+0+0+0+0+2+1
=3
Pour le nombre binaire 1000 0001 :
Nombre décimal = (1 * 2^7) + (0 * 2^6) + (0 * 2^5) + (0 *
2^4) + (0 * 2^3) + (0 * 2^2) + (0 * 2^1) + (1 * 2^0)
= -128 + 0 + 0 + 0 + 0 + 0 + 0 + 1
= 127
Pour le nombre binaire 1111 1111 :
Nombre décimal = (1 * 2^7) + (1 * 2^6) + (1 * 2^5) + (1 *
2^4) + (1 * 2^3) + (1 * 2^2) + (1 * 2^1) + (1 * 2^0)
= -128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= -1
b) Pour la représentation en complément à 2, les
nombres binaires se traduisent en décimal en utilisant la
formule suivante :
Si le bit le plus à gauche est 0, le nombre décimal est
égal à la représentation binaire classique.
Si le bit le plus à gauche est 1, le nombre décimal est
égal à la représentation binaire classique moins 2^n, où
n est le nombre de bits.
Pour le nombre binaire 0000 0011 :
Nombre décimal = (0 * 2^7) + (0 * 2^6) + (0 * 2^5) + (0 *
2^4) + (0 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0)
=0+0+0+0+0+0+2+1
=3
Nombre décimal = 3
Pour le nombre binaire 1000 0001 :
On inverse (0111 1110)
On ajoute 1 (0111 1111)
Nombre décimal = (-0 * 2^7) - (1 * 2^6) - (1 * 2^5) - (1 *
2^4) - (1 * 2^3) - (1 * 2^2) - ( 1* 2^1) - (1 *2^0)
= - 64 - 32 - 16 - 8 - 4 - 2 - 1
= -127
Pour le nombre binaire 1111 1111 :
On inverse 0000 0000
On ajoute 1 (0000 0001)
Nombre décimal = - (0 * 2^7) + (0 * 2^6) + (0 * 2^5) + (0
* 2^4) + (0 * 2^3) + (0 * 2^2) + (0 * 2^1) + (1 * 2^0)
= -1 *2^0
= -1
c) Pour la représentation par excès (d=2^7), les
nombres binaires se traduisent en décimal en utilisant la
formule suivante :
Nombre décimal = Nombre binaire - d
Pour le nombre binaire 0000 0011 :
Nombre décimal = 3 - 2^7
= 3 - 128
= -125
Pour le nombre binaire 1000 0001 :
Nombre décimal = -127 - 2^7
= -127 - 128
= -255
Pour le nombre binaire 1111 1111 :
Nombre décimal = -1 - 2^7
= -1 - 128
= -129
3) Convertir les nombres suivants en simple précision
IEEE-754.
a) − 52,234 375
b) 7112,0
c) 16,2
Résolution numéro 3
a) Pour convertir -52,234375 en simple précision IEEE-
754, nous devons suivre les étapes suivantes :
1. Convertir le nombre en binaire :
- La partie entière de -52 est 52, qui peut être
convertie en binaire comme suit : 110100
- La partie décimale de 0,234375 peut être convertie
en binaire en multipliant par 2 successivement :
0,234375 * 2 = 0,46875 => 0
0,46875 * 2 = 0,9375 => 0
0,9375 * 2 = 1,875 => 1
0,875 * 2 = 1,75 => 1
0,75 * 2 = 1,5 => 1
0,5 * 2 = 1 => 1
Donc, la partie décimale de -52,234375 en binaire
est : 00111101011100000000000
2. Déterminer le signe :
- Comme le nombre est négatif, le signe sera 1.
3. Normaliser le nombre :
- Le nombre normalisé sera :
1.10100011110000000000000 * 10^5
4. Calculer l'exposant :
- L'exposant est le nombre de décalages à effectuer
pour placer la virgule après le premier chiffre significatif.
- Dans ce cas, l'exposant sera 5.
5. Convertir l'exposant en binaire :
- L'exposant + le décalage de l'exposant (127) sera
converti en binaire : 5 + 127 = 132 = 10000100
6. Convertir la partie significative :
- La partie significative est
10100011110000000000000.
7. Combiner les signes, l'exposant et la partie
significative :
- La représentation en simple précision IEEE-754 de -
52,234375 sera : 1 10000100
10100011110000000000000
b) Pour convertir 7112,0 en simple précision IEEE-754,
nous devons suivre les mêmes étapes que
précédemment :
1. Convertir le nombre en binaire :
- La partie entière de 7112 est 7112, qui peut être
convertie en binaire comme suit : 1101111001000
- La partie décimale est nulle.
2. Déterminer le signe :
- Comme le nombre est positif, le signe sera 0.
3. Normaliser le nombre :
- Le nombre normalisé sera : 1.101111001000 * 10^12
4. Calculer l'exposant :
- L'exposant sera 12.
5. Convertir l'exposant en binaire :
- L'exposant + le décalage de l'exposant (127) sera
converti en binaire : 12 + 127 = 139 = 10001011
6. Convertir la partie significative :
- La partie significative est 101111001000.
7. Combiner les signes, l'exposant et la partie
significative :
- La représentation en simple précision IEEE-754 de
7112,0 sera : 0 10001011 10111100100000000000000
c) Pour convertir 16,2 en simple précision IEEE-754,
nous devons suivre les mêmes étapes que
précédemment :
1. Convertir le nombre en binaire :
- La partie entière de 16 est 16, qui peut être convertie
en binaire comme suit : 10000
- La partie décimale de 0,2 peut être convertie en
binaire en multipliant par 2 successivement :
0,2 * 2 = 0,4 => 0
0,4 * 2 = 0,8 => 0
0,8 * 2 = 1,6 => 1
0,6 * 2 = 1,2 => 1
0,2 * 2 = 0,4 => 0
...
La partie décimale se répète indéfiniment.
Donc, la partie décimale de 16,2 en binaire est :
001100110011001100110011...
2. Déterminer le signe :
- Comme le nombre est positif, le signe sera 0.
3. Normaliser le nombre :
- Le nombre normalisé sera :
1.100110011001100110011... * 10^4
4. Calculer l'exposant :
- L'exposant sera 4.
5. Convertir l'exposant en binaire :
- L'exposant + le décalage de l'exposant (127) sera
converti en binaire : 4 + 127 = 131 = 10000011
6. Convertir la partie significative :
- La partie significative est 100110011001100110011...
7. Combiner les signes, l'exposant et la partie
significative :
- La représentation en simple précision IEEE-754 de
16,2 sera : 0 10000011 100110011001100110011...