Documente Academic
Documente Profesional
Documente Cultură
Clément Jonquet
{jonquet@lirmm.fr}
(b) Quels nombres décimal et binaire le nombre hexadécimal 7FFF FFFA représente-t-il ?
Décimal :
7 ∗ 167 + 15 ∗ 166 + 15 ∗ 165 + 15 ∗ 164 + 15 ∗ 163 + 15 ∗ 162 + 15 ∗ 161 + 10 ∗ 160 =
7 ∗ 268435456 + 15 ∗ 16777216 + 15 ∗ 1048576 + 15 ∗ 65536 + 15 ∗ 4096 + 15 ∗ 256 +
15 ∗ 16 + 10 ∗ 1
= 1879048192 + 251658240 + 15728640 + 983040 + 61440 + 3840 + 240 + 10
= 2147483642
Binaire :
7 F F F F F F A
0111 1111 1111 1111 1111 1111 1111 1010
Question 3
Donner sur 8 bits les représentations des nombres -32, -127 et -128 dans les systèmes de
représentation suivants : valeur absolue signée, complément à 1, complément à 2.
Question 4
Représenter les nombres décimaux 512, -1023 et -25000 en binaire en utilisant la représen-
tation en complément à 2 sur 16 bits.
Question 5
Quels nombres décimaux représentent les nombres binaires en complément à 2 suivants ?
(a) 1111 1110 0000 1100
Lorsque le bit de poids fort est un 1 cela indique un nombre négatif, il faut donc faire
l'opération de conversion inverse pour obtenir le nombre d'origine : soustraire 1 →
complément à 1 → conversion décimale.
1111 1110 0000 1100 − 1 = 1111 1110 0000 1011 → 0000 0001 1111 0100 → −(256 +
128 + 64 + 32 + 16 + 4) = −500
2
Lorsque le bit de poids fort est un 0 cela indique un nombre positif, le nombre est donc
équivalent à sa valeur décimale.
0000 1111 1111 1111 = 4095
n−1 −1)
Représentation IEEE 754 : x = (−1)S × (1, M ) × 2E−(2
8−1 −1)
⇒ (−1)1 × (1, 011 0001 0000 0000 0000 0000) × 2100 0001 1−(2
= −1 × 1, (0.25 + 0.125 + 0.0078125) × 2131−127
= −1, 3828125 × 24
= −1, 3828125 × 16
= −22, 125
3
Question 8
Donnez la représentation ottante IEEE 754 en simple précision des nombres rationnels
suivants : 10, 10.5 et 0.1
10 → 1010 = 1.010 × 23
S = 0 (le nombre est positif)
M = 010, soit 010 0000 0000 0000 0000 0000 sur 23 bits.
E = 3+127 = 130 = 1000 0010 sur 8 bits
Soit 0100 0001 0010 0000 0000 0000 0000 0000
0.1 ∗ 2 = 0, 2
0.2 ∗ 2 = 0, 4
0.4 ∗ 2 = 0, 8
0.8 ∗ 2 = 1, 6
0.6 ∗ 2 = 1, 2
0.2 ∗ 2 = 0, 4
0.4 ∗ 2 = 0, 8
. . . ⇒ On boucle, il n'y a donc pas de représentation exacte du nombre 0.1. On doit donc
tronquer en fonction de la taille de la mantisse (i.e., 23 bits)
⇒ 0.1 ≈ 000 1100 1100 1100 1100 1100 ≈ 1.100 1100 1100 1100 1100 1100 × 2−4
S = 0 (le nombre est positif)
M = 100 1100 1100 1100 1100 1100
E = -4+127 = 123 = 0111 1011 sur 8 bits
Soit 0011 1101 1100 1100 1100 1100 1100 1100 ≈ 0.099999994
1 0 0 0 0 0 0 0 (128)
+ 0 0 0 0 1 1 1 1 (15)
1 0 0 0 1 1 1 1 (143)
(b) 234 + 65
1 11 1 1 0 1 0 1 0 (234)
+ 0 1 0 0 0 0 0 1 (65)
1 0 0 1 0 1 0 1 1 (299)
Cet exemple illustre un dépassement de capacité si la taille de représentation des
nombres était limitée à 8 bits. Il illustre également le report de la retenue.
(c) 70 − 20
4
0 10 01 10 0 1 1 0 (70)
− 0 0 0 1 0 1 0 0 (20)
0 0 1 1 0 0 1 0 (50)
(d) 13 × 5
1 1 0 1 (13)
* 1 0 1 (5)
1 1 1 11 1 0 1
0 0 0 0 0
1 1 0 1 0 0
1 0 0 0 0 0 1 (65)
Cet exemple illustre également un dépassement de capacité si la taille de représentation
des nombres était limitée à 4 bits.
(e) 356/4
1 0 1 1 0 0 1 0 0
/ 1 0 0
1 0 1 1 0 0 1
A dérouler !
(f) 234/13
1 1 1 0 1 0 1 0 (234)
/ 1 1 0 1 (13)
1 0 0 1 0 (18)
A dérouler !
Question 10
Eectuer les opérations arithmétiques suivantes en supposant que les nombres sont repré-
sentés en complément à 2 sur 8 bits :
(a) 70 − 20
1 01 1 0 01 01 1 1 0 (70)
+ 1 1 1 0 1 1 0 0 (-20)
0 0 1 1 0 0 1 0 (50)
Le nombre positif est plus grand que le nombre négatif : addition binaire classique et
on 'oublie' la dernière retenue (à gauche). La somme est positive.
(b) 20 − 70
0 01 01 1 0 1 0 0 (20)
+ 1 0
1 1 1 1 0 1 0 (-70)
1 1 0 0 1 1 1 0 (-50)
Le nombre négatif est plus grand que le nombre positif : addition binaire classique, la
somme est négative et représentée directement dans le système complément à 2.
(c) −20 − 70
1 11 11 11 01 1 1 0 0 (-20)
+ 1 0 1 1 1 0 1 0 (-70)
1 0 1 0 0 1 1 0 (-90)
Les deux nombres sont négatifs : addition binaire classique et on oublie la dernière
retenue (à gauche). La somme est négative.
5
Encodage
Question 11
Compléter en utilisant le contrôle de parité paire les octets suivants :
1 0 1 0 0 0 1
0 1 1 1 1 1 1
Question 12
Nous utilisons le codage suivant pour transférer des messages formés de caractères :
Codage ASCII sur 7 bits pour les caractères.
Contrôle de double parité paire avec 1 bit contrôle transversal sur le bit de poids fort.
Contrôle longitudinal après 6 mots (y compris bit de poids fort).
Vous venez de recevoir le message suivant :
A B C D E F G H
1 1 1 0 0 1 1 0 0
2 0 1 1 0 0 1 0 1
3 1 0 1 0 0 0 0 0
4 1 1 0 1 0 0 0 0
5 0 1 1 1 0 0 1 0
6 0 1 1 0 1 1 1 1
7 1 1 1 0 0 1 0 0
8 0 1 1 0 0 1 1 0
9 1 0 1 0 0 0 0 0
10 0 1 1 0 0 1 0 1
11 1 1 1 1 0 0 1 1
12 0 1 1 1 0 1 0 0
13 1 0 1 0 0 1 0 0
14 1 0 0 0 0 1 0 0
15 1 1 1 1 0 0 1 1
16 1 1 1 1 0 1 0 1
17 1 1 1 1 0 0 0 0
18 0 1 1 0 0 1 0 1
19 1 1 1 1 0 0 1 0
20 0 0 1 0 0 0 0 1
21 1 1 0 0 0 0 0 0
Détecter et corriger, si nécessaire, les erreurs de transferts et décoder le message.
Indication : l'espace se représente 0100000 en ASCII.
La détection des erreurs avec le double contrôle de parité nous indique des erreurs en :
C4, F13, A19.
La correction des erreurs est possible sans retransmission car il y à qu'une seule erreur
par bloc de 7 mots.
Le message décodé (en ignorant les lignes 7, 14 et 21 qui servent au contrôle longitudinal)
donne : "Le prof est super !"
Question 13
Proposer un codage de Human pour la phrase décodée de l'exercice précédent. Encoder
6
le message en utilisant ce codage et le même contrôle de double parité que précédemment.
Comparer la taille du nouveau message à précédemment. Commentez.