architecture des ordinateurs & algorithmique partie i : architecture … · 2018-10-31 · base...
TRANSCRIPT
Architecture des ordinateurs & Algorithmique
Partie I : Architecture des ordinateurs
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
1ère Année Cycle Préparatoire Intégré / Semestre 1
ENSA Khouribga
Pr. DARGHAM Abdelmajid
Année universitaire : 2018/2019
Chapitre 2 : Codage des informations
� Comprendre les techniques de
représentation internes des informations
Objectifs
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
� Besoin du codage d’information
� Les systèmes de numération
� L’organisation des informations en mémoire
� L’arithmétique en binaire pure
� Représentation des nombres négatifs
Sommaire
� Représentation des nombres négatifs
� Codage BCD
� Représentation des nombres réels
� Représentation des caractères
� Le code de Gray
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Besoin du codage d’information
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Besoin du codage d’information
• Un ordinateur manipule toute sorte d’information :– Numérique.
– Alphabétique.
– Graphique.
Besoin du codage d’information
– Graphique.
– Audio.
– Vidéo.
– Cliques souris.
– Programmes.
– ...
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Dans son niveau le plus bas, l’ordinateur
reste une machine électronique : il ne traite que des signaux électriques.
• Fondamentalement, il y a deux signaux électriques élémentaires différents :
Besoin du codage d’information
électriques élémentaires différents :
–Le signal de faible voltage (ou état « 0 »).
–Le signal de haut voltage (ou état « 1 »).
• Chaque signal élémentaire peut alors se trouver dans l’un de ces deux états : « 0/1 ».
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Par conséquence, toute information, quelque soit sa nature, doit être présentée à l’ordinateur sous forme d’une collection de ces signaux électriques.
• L’information doit alors être codée !
Besoin du codage d’information
• L’information doit alors être codée !
• La méthode de codage d’une information
dépend de la nature de celle-ci.
• En informatique, le système binaire est à la base de toute méthode de codage.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Définition :
–Coder une information c’est réaliser une
correspondance biunivoque qui permetsans ambiguïté de passer d’unereprésentation (dite externe) de cette
Besoin du codage d’information
représentation (dite externe) de cetteinformation à une autre représentation
(dite interne sous forme binaire) de lamême information, suivant un ensemble de
règles précises.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple :
–Considérons le nombre 29
–29 est la représentation externe du nombre
–La représentation interne de 29 sera une suite de 0 et de 1 : (11101)
Besoin du codage d’information
suite de 0 et de 1 : (11101)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Les systèmes de numération
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Les systèmes de numération
• Un système de numération se défini par :
–Un alphabet de base A : ensemble des symboles (ou chiffres) à utiliser.
–Un ensemble de règles d’écriture des
nombres.
Les systèmes de numération
• Dans les systèmes de numération modernes, les nombres sont écrits par simple juxtaposition de symboles de l’alphabet de base A.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Les systèmes de numération les plus courants :
–Le système décimal (base 10) : utilise les 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
–Le système binaire (base 2) : utilise les 2 chiffres : 0 et 1.
Les systèmes de numération
–Le système octal (base 8) : utilise les 8 chiffres : 0, 1, 2, 3, 4, 5, 6 et 7.
–Le système hexadécimal (base 16) : utilise les 16 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Le système binaire comprend deux valeurs
basiques discrètes : 1 et 0.
• Un chiffre binaire est appelé bit (binary digit) et représente l’une de ces deux valeurs (0 ou 1).
Les systèmes de numération
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• En général, le système de numération à base B
(B est un nombre entier ≥ 2) utilise les Bpremiers entiers de 0 à B-1.
• Un nombre entier X (base 10) se décompose d’une manière unique en :
X = α BN + α BN-1 + … + α B1 + α B0
Les systèmes de numération
X = αNBN + αN-1BN-1 + … + α1B
1 + α0B0
• Les coefficients αi vérifient : 0 ≤ ααααi < B, quelque soit l’indice i (de 0 à N).
• On écrit X, en ignorant les puissances de B :
X = (αNαN-1…α1α0)B
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Comment déterminer ces coefficients ?
X = αNBN + αN-1BN-1 + … + α1B
1 + α0B0
–Tout d’abord, α0 est le reste de la division de X par B, car :
X = (αNBN-1 + … + α1)B + α0 et 0 ≤ α0
< B
Les systèmes de numération
X = (αNB + … + α1)B + α0 et 0 ≤ α0
< B
–Remarquons tout de suite que le quotient de X par B est égal à :
(X ÷ B) = (αNBN-1 + αN-1BN-2 + … + α1)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Comment déterminer ces coefficients ?
–De même, α1 est le reste de la division de (X ÷ B) par B, car :
(X÷B) = (αNBN-2 + … + α2)B + α1 et 0 ≤ α1
< B
–Le quotient de (X ÷ B) par B est égal à :
Les systèmes de numération
–Le quotient de (X ÷ B) par B est égal à :
(X ÷ B) ÷ B = (αNBN-2 + αN-1BN-3 + … + α2)
–Et ainsi de suite, le processus est récursif !
–On répète le même processus jusqu’à trouver le premier quotient nul.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Comment déterminer ces coefficients ?
–La séquence des restes obtenues correspond aux symboles de la base considérée.
–On obtient en premier lieu le chiffre de poids
faible (B0) et en dernier lieu le chiffre de
poids fort (BN).
Les systèmes de numération
poids fort (BN).
–Pour obtenir la représentation de X en base B, il suffit alors d’écrire les restes dans l’ordre
inverse.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple :
–Écrivons 46 dans la base 3 :
Les systèmes de numération
46
15 1
Nombre initial
46 = (1201)3
α0
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
quotients restes
15 1
5
1
1
0
0
2
On inverse les restes
α0
α1
α2
α3
• Exercice :
–Convertir le nombre (2018)10 en :
• Base 16
• Base 8
• Base 2
Les systèmes de numération
• Base 2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion octal ���� binaire :
–Remplacer chaque chiffre octal en sonéquivalent binaire sur 3 bits (effacer les 0 lesplus à gauche si nécessaire) :
0 � 000
1 � 001
Les systèmes de numération
1 � 001
2 � 010
3 � 011
4 � 100
5 � 101
6 � 110
7 � 111
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion octal ���� binaire (exemple) :
(1472)8 = (001100111010)2 = (1100111010)2
• Conversion binaire ���� octal :
–Regrouper à partir de la droite, chaqueséquence de 3 bits par son équivalent en octal
Les systèmes de numération
séquence de 3 bits par son équivalent en octal
(ajouter des 0 à gauche si nécessaire).
–Exemple :
(10101111011)2 = (010 101 111 011)2 = (2573)8
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion hexadécimal ���� binaire :
–Remplacer chaque chiffre hexadécimal enson équivalent binaire sur 4 bits (effacer les0 les plus à gauche si nécessaire) :
0 � 0000 4 � 0100 8 � 1000 C �1100
1 � 0001 5 � 0101 9 � 1001 D �1101
Les systèmes de numération
1 � 0001 5 � 0101 9 � 1001 D �1101
2 � 0010 6 � 0110 A �1010 E �1110
3 � 0011 7 � 0111 B �1011 F �1111
(1A7E)16 = (0001101001111111)2 = (1101001111111)2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion binaire ���� hexadécimal :
–Regrouper à partir de la droite, chaquegroupe de 4 bits par son équivalent en
hexadécimal (ajouter des 0 à gauche sinécessaire).
–Exemple :
Les systèmes de numération
–Exemple :
(10101111011)2 = (0101 0111 1011)2 = (57B)16
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion hexadécimal ���� octal :
–Convertir le nombre hexadécimal en
binaire.
–Convertir le nombre binaire obtenu en
octal.
Les systèmes de numération
–Exemple :
(1A7E)16 = (0001101001111111)2 = (000 001
101 001 111 111)2 = (15177)8
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion octal ���� hexadécimal :
–Convertir le nombre octal en binaire.
–Convertir le nombre binaire obtenu en
hexadécimal.
–Exemple :
Les systèmes de numération
–Exemple :
(1037)8 = (001000011111)2 = (0010 0001 1111)2
= (21F)16
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Intervalle des entiers en base B représentés
sur N chiffres (de la base B) :
–Soit B ≥ la base et N le nombre de chiffres
utilisés dans le codage.
–Le total des nombres entiers distincts représentables sur N chiffres en base B : BN
Les systèmes de numération
représentables sur N chiffres en base B : BN
–Le plus grand entier est BN - 1
–L’intervalle des entiers est [0, BN - 1]
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Intervalle des entiers en binaire représentés
sur N bits :
–Le total des nombres entiers distincts représentables sur N bits en base 2 : 2N
–Le plus grand entier est 2N - 1 : il est représenté par une séquence de N bits 1
Les systèmes de numération
représenté par une séquence de N bits 1
–Le plus petit entier est 0 : il est représenté par une séquence de N bits 0
–L’intervalle des nombres entiers est [0, 2N - 1]
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Condition pour qu’un entier M soit
représentable en binaire sur N bits :
– Il faut que : M ≤ 2N - 1
–C’est-à-dire que M + 1 ≤ 2N
log2(M + 1) ≤ N
Les systèmes de numération
log2(M + 1) ≤ N
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Nombre de bits nécessaires pour représenter
un ensemble de M valeurs distinctes en
binaire :
–Soit N le nombre de bits nécessaires
– Il faut que : 2N-1 – 1 < M ≤ 2N – 1
Les systèmes de numération
� N - 1 < log2(M + 1) ≤ N
� N = log2(M + 1)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple :
–Pour représenter un domaine formé de M = 10
valeurs distinctes, il faut au moins :
N = log2(M + 1)
N = log2(10 + 1)
Les systèmes de numération
N = log2(10 + 1)
N = log2(11)
N = 3.4594316186
N = 4 bits
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
L’organisation des informations
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
L’organisation des informations en mémoire
• En arithmétique binaire pure, une valeur peut prendre un nombre arbitraire de bits.
• Ceci est impossible des les systèmes électroniques : le nombre de bits est limité.
• Les collections de bits les plus utilisés en informatique sont des puissances de 2 :
L’organisation des informations en mémoire
informatique sont des puissances de 2 : – Les bits singuliers
– Les quartets
– Les octets
– Les mots
– Les mots doubles
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Les multiples du bit sont :
–L’octet = 8 bits
–Le Kilo octet = 210 octets = 1024 octets
–Le Méga octet = 210 Ko = 220 octets
–Le Giga octet = 210 Mo = 230 octets
L’organisation des informations en mémoire
–Le Giga octet = 2 Mo = 2 octets
–Le Téra octet = 210 Go = 240 octets
–Le Péta octet = 210 To = 250 octets
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Les quartets (Nibbles) :
–Un quartet est une collection de 4 bits.
–Le quartet n’est pas intéréssant, sauf s’il l’on veut représenter les nombres en codage (Décimal Codé Binaire) ou BCD (BinaryCoded Decimal) ou en hexadécimal.
L’organisation des informations en mémoire
Coded Decimal) ou en hexadécimal.
–Avec un quartet, il est possible de représenter jusqu’à 24 = 16 values distinctes.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Les octets (Bytes) :– Un octet est une collection de 8 bits.
– Il peut représenter un ensemble ne dépassant pas 28 = 256 valeurs distinctes.
– Il représente la plus petite information qui soit adressable en mémoire de l’ordinateur.
L’organisation des informations en mémoire
adressable en mémoire de l’ordinateur.
– Dans un octet :
• Le bit de poids faible représente le coefficient de poids 20 = 1 (c’est le bit le plus à droite)
• Le bit de poids fort représente le coefficient de poids 27 = 128 (c’est le bit le plus à gauche)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
L’organisation des informations en mémoire
01234567
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Le bit de poids faibleLe bit de poids fort
Schéma d’un octet
• Les mots (Words) :
–Un mot est une collection de 16 bits.
–Les mots peuvent représenter des collections de données dont l’ensemble ne dépassant pas 216 = 65 536 valeurs distinctes.
L’organisation des informations en mémoire
– Ils sont utilisés pour représenter des nombres entiers (signés ou non).
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Les mots doubles (Double words) :
–Un mot double est une collection de 32 bits.
–Les mots doubles peuvent représenter des collections de données dont l’ensemble ne dépassant pas 232 = 4 294 967 296 valeurs distinctes.
L’organisation des informations en mémoire
distinctes.
– Ils sont utilisés pour représenter des nombres entiers et réels (signés ou non).
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
L’arithmétique en binaire pure
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
L’arithmétique en binaire pure
• Les règles de l’addition binaire :
� 0 + 0 = 0
� 1 + 0 = 0 + 1 = 1
� 1 + 1 = 10
� Résultat = 0, avec Retenu = 1
L’arithmétique en binaire pure
� Résultat = 0, avec Retenu = 1
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
1 0 0 1 1 1
1 1 1 0 1 0+
1 1 0 0 0 0 1
1 Retenu111
• Les règles de la soustraction binaire :
� 0 - 0 = 1 - 1 = 0
� 1 - 0 = 1
� 0 - 1 = 1
� Résultat = 1, avec Emprunt = 1
L’arithmétique en binaire pure
� Résultat = 1, avec Emprunt = 1
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
1 1 1 0 1 1
1 1 0 1 1 0-
0 0 0 1 0 1
Emprunt1
• Les règles de la multiplication binaire :
� 0 × 0 = 1 × 0 = 0 × 1 = 0
� 1 × 1 = 1
L’arithmétique en binaire pure
1 1 0 1
1 0 1××××
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
1 0 1××××
1 1 0 1
1 1 0 1
0 0 0 0
1 0 0 0 0 0 1
+
+
Codage des nombres négatifs
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Codage des nombres négatifs
• Trois méthodes classiques pour coder lesentiers négatifs (signe moins) :
–Méthode du signe-module (Sign-Magnitude Method)
–Méthode du complément à 1 (One’s-
Codage des nombres négatifs
–Méthode du complément à 1 (One’s-Complement Method)
–Méthode du complément à 2 (Two’s-Complement Method)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode du signe-module (valeur absolue)
–Le bit du poids fort (MSB, Most SignificantBit) est réservé pour le signe du nombre : 1 si c’est le nombre est négatif, et 0 si c’est le nombre est positif.
Codage des nombres négatifs
–Les (N-1) bits restants sont utilisés pour coder la valeur absolue du nombre (en binaire pur).
–L’intervalle des entiers représentables avec cette méthode est alors :
[-2N-1 + 1, 2N-1 - 1]
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Codage des nombres négatifs
Opération Additionner les modules
Soustraire les modules
A > B A < B A = B
(+A) + (+B) + (A + B)
(+A) + (-B) + (A – B ) - (B – A ) + (A – B )
(-A) + (+B) - (A – B ) + (B – A ) + (A – B )
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
(-A) + (+B) - (A – B ) + (B – A ) + (A – B )
(-A) + (-B) - ( A + B)
(+A) - (+B) + (A – B ) - (B – A ) + (A – B )
(+A) - (-B) + (A + B)
(-A) - (+B) - ( A + B)
(-A) - (-B) - (A – B ) + (B – A ) + (A – B )
• Inconvénients de la méthode signe-module
– Il y a deux représentations distinctes pour lenombre zéro :
+0 = 0000…000
- 0 = 1000…000
Codage des nombres négatifs
- Les opérations arithmétiques ne sont pas faciles à
effectuer : il faut tenir compte des signes et des
modules des opérandes.
- Il peut y avoir une erreur de débordement
(Overflow) lorsque les résultats ne sont pas dansl’intervalle [-2N-1 + 1, 2N-1 - 1].
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples
–Sur N = 8 bits :
•X = 102 � Rep(X) = 01100110
•Y = -102 � Rep(Y) = 11100110
Codage des nombres négatifs
• Z = 127 � Rep(Z) = 01111111
•U = 128 � U est non représentable
•V = -127 � Rep(V) = 11111111
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exercice corrigé (en séance du cours)
– Effectuer les opérations suivantes en utilisant le codage du signe-module sur 8 bits :
• 22 + 11
• (-22) + 11
Codage des nombres négatifs
• (-22) + 11
• 22 + (-11)
• 22 + (-22)
• (-22) + (-11)
• 22 + 120
• (-22) + (-106)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode du complément à 1 (ou complément
logique)
– Cas d’un nombre positif : on le code comme dansla méthode de la valeur absolue.
– Cas d’un nombre négatif :
Codage des nombres négatifs
– Cas d’un nombre négatif :
• On code son nombre opposé (qui est positif).
• On calcule le complément logique du codeobtenu (en transformant les 0 en 1, et vice-
versa).
– Le bit du poids fort est toujours utilisé pour coderle signe du nombre (0 : positif / 1 : négatif)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Inconvénients
– Il y a deux représentations distinctes pour le nombrezéro :
+0 = 0000…000
- 0 = 1111…111
– Il y aura une erreur de débordement (Overflow)
Codage des nombres négatifs
– Il y aura une erreur de débordement (Overflow)lorsque le résultat n’est pas dans l’intervalle [-2N-1 +
1, 2N-1 - 1].
• Avantages
– La soustraction peut être effectuée en utilisantl’addition.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples
–Sur N = 8 bits :
•X = 102 � Rep(X) = 01100110
•Y = -102 � Rep(Y) = CA1(01100110) = 10011001
Codage des nombres négatifs
10011001
• Z = 127 � Rep(Z) = 01111111
•U = 128 � U est non représentable
•V = -127 � Rep(V) = CA1(0111111) = 10000000
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exercice corrigé
–Donner la valeur décimale du nombre dont le code sur N = 8 bits en utilisant la méthode du complément à 1 est : 11000100
Codage des nombres négatifs
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Solution
–Le bit du poids fort est = 1 � X est négatif
–La valeur absolue du nombre est obtenue en calculant le complément à 1 du code :
CA (11000100) = 00111011
Codage des nombres négatifs
CA1(11000100) = 00111011
– |X| = 25 + 24 + 23 + 21 + 20
– |X| = 32 + 16 + 8 + 2 + 1
– |X| = 59
� X = -59
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode du complément à 2 (ou
complément arithmétique)
–Un nombre positif est représenté en binaire pur, avec un 0 en bit de poids fort.
–Un nombre négatif est représenté avec une
Codage des nombres négatifs
–Un nombre négatif est représenté avec une séquence de bits en respectant les deux conditions suivantes :
• La somme du nombre et de son opposé est égale à 0.
• Le bit de poids fort est égal à 1.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode du complément à 2 (ou
complément arithmétique)
–Soit -A un nombre négatif à coder en complément à 2 (A étant positif) sur N bits
–On veut que -A = 1???...???
Codage des nombres négatifs
–On veut que -A = 1???...???
–A = 0§§§…§§§
–On veut que : -A + A = 0
–L’idée est de représenter -A comme étant la valeur binaire de -A + 2N
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode du complément à 2 (ou complément
arithmétique)
–Par suite : -A + A + 2N = 0 + 2N = 2N
–Le nombre 2N se représente sur N+1 bits comme 1000…000 (1, suivi de N zéros).
Codage des nombres négatifs
comme 1000…000 (1, suivi de N zéros).
–Si l’on ignore le bit de poids fort 1, on s’aperçoit qu’effectivement : -A + A = 0.
–C’est la méthode du complément à 2.
–Avec Cette méthode, on peut coder sans erreur tous les entiers de l’intervalle [-2N-1, 2N-1-1]
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple
–Pour coder X = -12 en complément à 2 sur 8 bits en utilisant la méthode du complément à 2, on suit les étapes suivantes :
Codage des nombres négatifs
suivantes :
– (-12) ∈ [-27, 27-1] = [-128, 127]
– (-12) + 28 = 256 - 12 = 244
–244 = (11110100)2
– (-12) = (11110100)CA2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Algorithme (1) de codage d’un nombre négatif
(-A) en complément à 2
–Calculer la représentation binaire de A
–Calculer le complément à 1 de A : CA1(A)
–Ajouter +1 au résultat
Codage des nombres négatifs
–Ajouter +1 au résultat
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple
–Codons (-12) en complément à 2 sur 8 bits.
–Étape 1 :
(12)10 = (00001100)2
–Étape 2 :
Codage des nombres négatifs
–Étape 2 :
CA1 � (12)10 = (11110011)CA1
–Étape 3 :
CA2 � 1 + (11110011)CA1 = (11110100)CA2
-12 = (11110100)CA2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Algorithme (1) de codage d’un nombre négatif
–A en complément à 2
–Calculer la représentation binaire de A
–Copier tous les bits 0 à partir de la droite
jusqu’au premier bit égal à 1 (ce bit inclus).
Codage des nombres négatifs
jusqu’au premier bit égal à 1 (ce bit inclus).
–Complémenter les bits restants
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple
– Codons (-12) en complément à 2 sur 8 bits.
– Étape 1 :
(12)10 = (00001100)2
– Étape 2 :
Codage des nombres négatifs
Copie des bits 0 et du 1er 1 à droite �
(00001100)2
– Étape 3 :
Complémentation des bits restants � (11110100)CA2
-12 = (11110100)CA2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Avantages de la méthode du complément à
2
– Il est facile de tester si un nombre est négatif : sa représentation binaire commence par un 1.
Codage des nombres négatifs
commence par un 1.
–Les opérations arithmétiques sont très simples à effectuer en complément à 2.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Règles de calcul en complément à 2
–Calculer l’opposé d’un nombre X : -X = CA2(X).
–A + B : s’effectue comme en binaire.
–A - B : on calcule A + CA2(B)
Codage des nombres négatifs
–A - B : on calcule A + CA2(B)
– Il y débordement (Overflow) seulement dans le cas où si deux nombres de même signe qui sont additionnés donne un résultat de signe différent.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples (sur 4 bits)
– (-5) � (5)10 = (0101)2 = (1011)CA2
– (5)10 + (2)10 = (0101)CA2 + (0010)CA2 = (0111)CA2 = (7)10
– (5) + (3) = (0101) + (0011) =
Codage des nombres négatifs
– (5)10 + (3)10 = (0101)CA2 + (0011)CA2 = (1000)CA2 � Overflow
– (5)10 - (2)10 = (0101)CA2 - (0010)CA2 = (0101)CA2 + (1110)CA2 = (10011)CA2 � On ignore le bit 1 ���� (5)10 - (2)10 = (0011)CA2 = = (3)10
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples (sur 4 bits)
– (-7)10 + (-6)10 = (1001)CA2 + (1010)CA2 = (10011)CA2 � Overflow
– (-5)10 - (2)10 = (1011)CA2 - (0010)CA2 = (1011)CA2 + (1110)CA2 = (11001)CA2 � On
Codage des nombres négatifs
(1011)CA2 + (1110)CA2 = (11001)CA2 � On ignore le bit 1 ���� (-5)10 - (2)10 = (1001)CA2
= (-7)10
– (-6)10 - (4)10 = (1010)CA2 + (11000)CA2 = (10110)CA2 � Overflow
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Conversion Complément à 2 ���� Décimal
–Soit (AN-1AN-2…A0)CA2 un nombre codé en complément à 2 sur N bits qui représente un nombre entier A.
–A est le bit de signe.
Codage des nombres négatifs
–AN-1 est le bit de signe.
–La valeur décimale de ce code est donnée par la formule suivante :
A = -AN-1 * 2N-1 + AN-2 * 2N-2 + … + A0 * 20
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exercice corrigé
–Convertir en décimal, les codes suivants :
• (11001000)CA2
• (00100111)CA2
Codage des nombres négatifs
• Solution
– (11001000)CA2 = -27 + 26 + 23 = -56
– (00100111)CA2 = 25 + 22 + 21 + 20 = 39
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Codage BCD
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Codage BCD
• BCD (Binary Coded-Decimal)
–Le décimal codé binaire est un codage dans lequel on représente un nombre
décimal chiffre par chiffre.
–Chaque chiffre décimal est convertit en
Codage BCD
–Chaque chiffre décimal est convertit en son équivalent binaire sur 4 bits :• 0 � 0000 4 � 0100 8 � 1000
• 1 � 0001 5 � 0101 9 � 1001
• 2 � 0010 6 � 0110
• 3 � 0011 7 � 0111Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple
–Le nombre 12349 est codé en BCD en :
(12349)10 = (0001 0010 0011 0100 1001)BCD
• Arithmétique en BCD
–En BCD, l’arithmétique s’effectue chiffre
Codage BCD
–En BCD, l’arithmétique s’effectue chiffre
par chiffre.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Cas de l’addition en BCD
–Considérons l’addition de deux chiffres décimaux.
–En BCD, si la somme dépasse 9, on ajoute 6 pour ramener le résultat dans l’intervalle
Codage BCD
6 pour ramener le résultat dans l’intervalle [0, 9].
–Un retenu (CARRY) est généré dans ce cas.
–Le retenu est ensuite additionné aux chiffres dans l’étape suivante de calcul.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple 1
–310 + 210 = (0011)BCD + (0010)BCD
–310 + 210 = (0101)BCD = 510
–Dans ce cas, il n’y a pas de correction, car la somme des chiffres <= 9.
Codage BCD
la somme des chiffres <= 9.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple 2
–510 + 610 = (0101)BCD + (0110)BCD
–510 + 610 = (1011)2 = 1110
–Dans ce cas, il y a correction, car la somme des chiffres > 9.
Codage BCD
des chiffres > 9.
–On ajoute 6 au résultat :
– (1011)2 + 610 = (1011)2 + (0110)2
–Le résultat est (0001)BCD , plus un retenu égal à 1
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Avantages est inconvénients
–Le codage BCD est très simple à le convertir en décimal.
–Cependant, il n’est pas efficace pour coder les nombres : il est gourmand en espace
Codage BCD
les nombres : il est gourmand en espace (pour représenter 123, il faut 12 bits en BCD, alors qu’en CA2, 8 bits suffisent).
–Le codage BCD est efficace pour afficher les nombres.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Représentation des nombres réels
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Représentation des nombres réels
• Méthode de la virgule fixe
–Dans cette méthode, la position de la virgule
reste inchangée.
–On code un nombre réel R sur 3 champs :
• Le bit de poids fort (MSB) est réservé
Représentation des nombres réels
• Le bit de poids fort (MSB) est réservé pour le signe de R.
• La partie entière de R est codé en binaire
pur (sur un nombre de bits précis).
• La partie fractionnaire de R est également codé en binaire pur (sur un nombre de bits précis).
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Représentation des nombres réels
Bit de signe Partie fractionnaire en binaire pur
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Partie entière en binaire pur
• Exemple
–R = -12.25
– Signe = - � MSB = 1
– Partie entière de R = 12 = (1100)2
– Partie fractionnaire de R = 0.25 = (01)2
Représentation des nombres réels
– Partie fractionnaire de R = 0.25 = (01)2
– Supposons que la partie entière (plus le signe) sont codés sur 3 octets et que la partie fractionnaire est codé sur 1 octet
– La représentation complète de R est alors :
(10000000000000000000110001000000)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Comment déterminer la représentation
binaire de la partie fractionnaire
– En décimal : 0.25 = 2 × 10-1 + 5 × 10-2
– En binaire : 0.25 = ¼ = 0 × 2-1 + 1 × 2-2
–On effectue une série de multiplications par
Représentation des nombres réels
–On effectue une série de multiplications par
2, jusqu’à trouver le nombre 1 :
– 0.25 × 2 = 0 + 0.5
– 0.5 × 2 = 1 + 0
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple 1
– Trouvons la représentation binaire de 0.2357 sur 8 bits :
• 0.2357 × 2 = 0 + 0.4714
• 0.4714 × 2 = 0 + 0.9428
• 0.9428 × 2 = 1 + 0.8856
Représentation des nombres réels
• 0.9428 × 2 = 1 + 0.8856
• 0.8856 × 2 = 1 + 0.7712
• 0.7712 × 2 = 1 + 0.5424
• 0.5424 × 2 = 1 + 0.0848
• 0.0848 × 2 = 0 + 0.1696
• 0.1696 × 2 = 0 + 0.3392
– (0.2357)10 = (0.00111100)2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple 1
–Trouvons la représentation binaire de 0.6 sur 8 bits :
• 0.6 × 2 = 1 + 0.2
• 0.2 × 2 = 0 + 0.4
Représentation des nombres réels
• 0.2 × 2 = 0 + 0.4
• 0.4 × 2 = 0 + 0.8
• 0.8 × 2 = 1 + 0.6 (représentation
cyclique)
– (0.6)10 = (0.10011001)2
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode de la virgule flottante
–Plusieurs méthodes de cette catégorie :
• IEEE 754 (simple précision / double
précision / précision étendue)
• IBM 360/370
Représentation des nombres réels
• IBM 360/370
–Dans ces méthodes, la position de la
virgule est variable (on dit qu’elle flotte).
–On écrit le nombre réel sous la forme :
R = (±±±±1) ×××× M ×××× 2E
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Méthode de la virgule flottante
–Dans cette notation :
•M : est appelé la mantisse
• E : est appelé l’exposant
Représentation des nombres réels
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage IEEE 754 (simple précision)
–Dans ce codage, la mantisse doit être normalisée.
–Dans ce cas, la mantisse est formé :
•Du chiffre 1 (non nécessaire à stocker,
Représentation des nombres réels
•Du chiffre 1 (non nécessaire à stocker, car il doit être toujours présent)
• La virgule (non stockée)
• Le reste de la mantisse (appelée lapseudo-mantisse ou la significande)
M = 1,M’Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage IEEE 754 (simple précision)
–Ce codage utilise 32 bits comme suit :
• 1 bit (MSB) pour le signe : 0 (positif) / 1 (négatif)
• 8 bits pour l’exposant
Représentation des nombres réels
• 8 bits pour l’exposant
• 23 bits (les plus à droite) pour la pseudo-
mantisse (contient implicitement un chiffre 1)
–La pseudo-code est un réel positif dans l’intervalle [1, 2[.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage IEEE 754 (simple précision)
–Au lieu de coder E (en binaire pur), on code E + 127.
–C’est l’exposant biaisé Eb : Eb = E + 127
–Cela permet d’avoir un exposant non signé
Représentation des nombres réels
–Cela permet d’avoir un exposant non signé
(unsigend exposant).
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemple
–R = -0.75
–R < 0 � MSB = 1
– (0.75)10 = (0.11)2 = (1.1)2 × 2-1
–E = -1
Représentation des nombres réels
–E = -1
–� Eb = -1 + 127 = 126 = (1111110)2
–Pseudo-mantisse = (1)2
–La représentation de R est alors :
10111111010000000000000000000000
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage IEEE 754 (double précision)
– Identique au précédent, sauf que la capacité du codage est de 64 bits :
• 1 bit (MSB) pour le signe
• 11 bits pour l’exposant (L’exposant est
Représentation des nombres réels
• 11 bits pour l’exposant (L’exposant est biaisé : Eb = E + 1023)
• 52 bits pour la pseudo-mantisse
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage IEEE 754 (précision étendue)
– Identique au précédent, sauf que la capacité du codage est de 80 bits :
• 1 bit (MSB) pour le signe
• 15 bits pour l’exposant (L’exposant est
Représentation des nombres réels
• 15 bits pour l’exposant (L’exposant est biaisé : Eb = E + 1024)
• 64 bits pour la pseudo-mantisse
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• IEEE 754 SP : Valeurs spéciales
–0 est représenté avec E = 0 et M = 0
– Il y a deux représentations pour 0 : +0 et -0.
–+Infinity
� S = 0, E = (11111111) , M = 0
Représentation des nombres réels
� S = 0, E = (11111111)2, M = 0
– -Infinity
� S = 1, E = (11111111)2, M = 0
–NaN (Not-a-Number)
� S = 1, E = (11111111)2, M ≠ 0
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• IEEE 754 SP : Valeurs spéciales
–Les exposants 0000000 et 11111111 sont alors réservés à ces valeurs spéciales
–Plus petite valeur
� E = (00000001)2 = 1 - 127 = -126
Représentation des nombres réels
� E = (00000001)2 = 1 - 127 = -126
� M = 1
�Vmin = ±±±±1 ×××× 2-126 ≈≈≈≈ ±±±± 10-38
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• IEEE 754 SP : Valeurs spéciales
–Plus grande valeur
�E = (11111110)2 = 127
�M = 1,111..1112 � M ≈≈≈≈ 2
�Vmax ≈≈≈≈ ±±±± 2128 ≈≈≈≈ ±±±± 1038
Représentation des nombres réels
�Vmax ≈≈≈≈ ±±±± 2128 ≈≈≈≈ ±±±± 1038
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Comparaison entre le codage en Virgule
Fixe (VFx) et en Virgule Flottante (VFt)
– Le codage en VFx est plus simple à effectuer
que celui en VFt.
– Le codage en VFt est plus efficace que celui
Représentation des nombres réels
en VFx sur deux points :
• La précision du codage
• La capacité du codage
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Précision du codage
– Supposons le codage suivant sur un octet :
Représentation des nombres réels
Virgule FixePartie entière Partie fractionnaire
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Virgule Flottante
Mantisse Exposant
• Précision du codage
–Exemple
• Codage de R = 47/64 = (0.734375)10
• R = 47 / 64 = (0.101111)2
• En VFx : R = (00000101) = 40/64
Représentation des nombres réels
• En VFx : R = (00000101)2 = 40/64
• En VFt : R = (101111000)2 = 46/64
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Capacité du codage
–En VFx : Vmax = (11111111)2 = (31.875)10
–En VFt : Vmax = (111111111)2 = 0.96875 ××××27 = (124)10
Représentation des nombres réels
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Représentation des caractères
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Représentation des caractères
• Notion de caractère
– Un caractère est un symbole alphanumérique (cen’est pas une donnée numérique).
– Il se présente sous plusieurs formes :
• Chiffre : 0, 1, …, 9
Représentation des caractères
• Lettre majuscule : A, B, …, Z
• Lettre minuscule : a, b, …, z
• Symbole de ponctuation : . , ; : ? ! ( ) { } [ ]
• Caractère spécial : @ # & ~
• Symbole d’opération : + - / *
• Etc…Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Codage des caractères
–Une chaîne de caractères est une séquence finie
de caractères.
– Le codage des caractères se fait à l’aide d’unetable de correspondance indiquant laconfiguration binaire représentant chaque
Représentation des caractères
configuration binaire représentant chaquecaractère.
– Il existe plusieurs codage de caractères :
• Le codage ASCII
• Le codage EBCDIC
• L’Unicode
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Le codage ASCII
– Le code ASCII (American Standard Code forInformation Interchange) représente un caractèresur 7 bits.
–A chaque caractère, est associé une configurationde 8 chiffres binaires (1 octet), mais le chiffre de
Représentation des caractères
de 8 chiffres binaires (1 octet), mais le chiffre depoids fort (MSB) est toujours égal à zéro.
– Le codage ASCII permet alors de coder 27 = 128
caractères différents.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples (code ASCII)
Représentation des caractères
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Caractéristiques du codage ASCII
– Les codes compris entre 0 et 31 représentent descaractères non imprimables.
– Les lettres se suivent dans l’ordre alphabétique
(codes 65 à 90 pour les majuscules, 97 à 122 pourles minuscules).
Représentation des caractères
les minuscules).
–On passe des majuscules aux minuscules enmodifiant le 5ème bit, ce qui revient à ajouter 97 –65 = 32 au code ASCII décimal (32 : 0010000)
G (code 71 = 010001112) � g (code 103 =010101112)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Caractéristiques du codage ASCII
– Les chiffres sont rangés dans l’ordre croissant(codes 48 à 57), et les 4 bits de poids faibles
définissent la valeur en binaire du chiffre.
Représentation des caractères
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Le codage EBCDIC
– Le code EBCDIC (Extended Binary-CodedDecimal Interchange Code) représente uncaractère sur 8 bits.
–Avec ce codage, il est alors possible de coder 28 =
256 caractères différents.
Représentation des caractères
256 caractères différents.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• L’UNICODE
– Les codes ASCII et EBCDIC supportent lescaractères latins les plus utilisés sur ordinateur.
– Ils ne supportent pas les caractères des autreslangues internationales (Arabe, Chinois, Japonais,Russe, …).
Représentation des caractères
Russe, …).
–C’est l’objectif du code universel appelé :Unicode.
– L’Unicode est un standard évolutif.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• L’UNICODE
–Dans la version 2.0 de l’Unicode standard, il y a38 885 codes caractères qui coverent lesprincipales langues écrites.
– L’Unicode standard utilise 16 bits (2 octets).
compatible ASCII
Représentation des caractères
– Il reste compatible avec le code ASCII.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Le code de Gray
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
Le code de Gray
• Objectif
–Coder un entier en binaire, de manière à ce quedeux valeurs successives ne diffèrent dans leur
codage que par un seul bit.
– Le codage est efficace pour effecteurl’incrémentation (ajouter 1) ou la
Le code de Gray
l’incrémentation (ajouter 1) ou ladécrémentation (retrancher 1) d’un nombreentier, mais pas l’addition.
– Il est donc meilleur pour faire des compteurs.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK
• Exemples
–Avec 2 bits, le codage de Gray donne la suite :
00, 01, 11 puis 10
–Avec 3 bits, le codage de Gray donne la suite :
000, 001, 011, 010, 110, 111, 101 puis 100
Le code de Gray
000, 001, 011, 010, 110, 111, 101 puis 100
• Remarque
– le codage de Gray est également appelé le code binaire réfléchi, car il s’effectue avec un effet miroir.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK