Architectures Systèmes et
Réseaux
Codage de l’information
Solemane COULIABLY
[Link]@[Link]
IUFP, Université de Ségou
Qu’appelle t-on architecture des ordinateurs
qest l’étude et la description du fonctionnement des composants internes
d’un ordinateur. Elle traite :
– du type des informations manipulées et de leur codage,
– du dialogue entre composants,
– du fonctionnement logique (pas électronique) interne des composants.
Problématique
q Les humains manipulent les informations (code, représente) contant des données
– de nature diverse:
• Des chiffres (entier, de décimal)
• Des (chaînes de) caractères
• Des informations de tout genre
– De taille différentes:
• Taille fixe: numéro de téléphone, code postal
• Taille variable: nom d’une personne, adresse
q Matériellement, on peut facilement coder deux valeurs différentes par une tension
électrique :
– une tension haute représentera l’une des deux valeurs,
– et une tension basse, l’autre valeur
– les ordinateurs utilisent principalement ces deux valeur (binaire ou la base 2 et donc les
deux chiffres 0, 1 appelée bit)
q Comment passer de la manipulation des bits aux traitement de l’information
q Par le codage/décodage des données
– associé a tout type de données un code
– en l’utilisant l’arithmétique binaire pour manipuler les données codées
– En utilisant les matériels ou logiciel pour implémenter les règles de codage
BIT, OCTET et WORD
q BiT (Binary digiT) représente l’unité d’information
q Octet représente une suite de 8 bits
– on peut représenter 28, soit 256 valeurs différentes
– Autrefois constitué de 16 bits (2octets), on parlait d’ordinateur de 16bits
– Maintenant, on parle couramment des mots de 32bits (4octets), 64 bits (8octets)
q Les autres unités
– Mega
– Giga
– Tera
– Peta
– Exa
– Zeta
BIT, OCTET et WORD
Système Préfixes
international (SI) binaires (CEI)
Ordre de
Unité Notation Valeur Unité Notation Valeur grandeur
bit bit 1 bit bit bit 1 bit 1
Kibit (ou Kb,
kilobit kbit ou kb 103 bits kibibit 210 bits 103
par usage)
mégabit Mbit ou Mb 106 bits mébibit Mibit 220 bits 106
gigabit Gbit ou Gb 109 bits gibibit Gibit 230 bits 109
térabit Tbit ou Tb 1012 bits tébibit Tibit 240 bits 1012
pétabit Pbit 1015 bits pébibit Pibit 250 bits 1015
exabit Ebit 1018 bits exbibit Eibit 260 bits 1018
zettabit Zbit 1021 bits zébibit Zibit 270 bits 1021
yottabit Ybit 1024 bits yobibit Yibit 280 bits 1024
Représentation d’un nombre en base B
q Pour une base B, il y’a b symboles (chiffres) différents
q Base 10 (décimale): 0, 1, 2, 3, 4, 5, 6, 7,8,9.
q Base 2 (binaire): 0 et 1
q Base 8 (octale): 0, 1, 2, 3, 4, 5, 6, 7.
q Base 16 (hexadécimale): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
avec A = 1010, B = 1110, C = 1210, D = 1310, E = 1410, F = 1510
Codage en base B
q Dans une base B, un nombre entier positif N s’ecrit:
– (N)B=an an-1 an-2 ... a1 a0
– avec ax, est un des B chiffre de la base
q Exemples:
– Base 10: 123410
– Base 2: 11012
– Base 16: 1AB16
Base B vers Décimal (addition)
q Exemple
– 123410= 4*100+3*101+2*102+1*103= 4+30+200+1000=123410
– 110012= 1*20+0*21+0*22+1*23+1*24= 1+0+0+8+16=2510
– 1AB16= 11*160+10*161+1*162= 11+10*16+1*256=42710
q Le nombre N= an an-1 an-2 ... a1 a0 exprimé en base B est exprimé en base en appliquant
la formule suivante
– NB=anBn an-1Bn-1 an-2Bn-2 ... a1B a0
– en prenant la valeur décimale de chaque chiffre ax
Décimal vers base B(Méthode des divisions successives)
q N est itérativement divisé par B jusqu’à obtenir un quotient égal à 0.
q La conversion du nombre N dans la base B est obtenue en notant les restes de chacune
des divisions effectuées depuis la dernière division jusqu’à la première.
q NB : les restes sont obligatoirement inférieurs à X.
q Exemple de (1234)10 en décimal
– 1234/ 10 = 123 reste= 4
123 / 10 = 12 reste= 3
12 / 10 = 1 reste= 2
1 / 10 = 0 reste= 1 (on arrête quotient= 0)
– Résultat= 123410
La conversion de 23510 en base 2 : 23510 = 111010112
Décimal vers B(Méthode des divisions successives)
q Exemple de 1210 en binaire
12/ 2= 6 reste= 0
6 / 2= 3 reste= 0
3 / 2= 1 reste= 1
1 / 2= 0 reste= 1 (on arrête quotient= 0)
– Résultat= 11002
q Exemple de 42710 en hexadécimal
427/16= 26 reste= B
26 /16= 1 reste= A
1 /16= 0 reste= 1
– Résultat= 1AB16
Cas particuliers
q Conversion du binaire à l'octal/hexadécimal ou inverse
– 1 chiffre octal = un groupe de 3 chiffres binaires
– 1 chiffre hexadécimal = un groupe de 4 chiffres binaires
q Exemple 1100111012 en octal
– on forme des groupes de 3 Bits: 110 011 101
– rajouter des zéros au début au besoin
– 1102= 68 0112= 38 1012= 58
– 1100111012= 6358
q Exemple 1100110012 en hexadécimal
q on forme des groupes de 4 Bits: 0001 1001 1101
– rajouter des zéros au début au besoin
– 00012= 116 10012= 916 11012= D16
– 1100111012= 19D16
Cas particuliers
q Exemple (253)8 en binaire
– 2= (010)2 5=(101)2 3= (011)2
– On concatène ces groupes de 3 bits
(253)10= (010101011)2
q Exemple de (3AE)16 en binaire
– 3= (0011)2 A= (1010)2 E= (1110)2
– On concatène ces groupes de 4 bits
(3AE)16= (001110101110)2
Codage d’un nombre fractionnaire (nombre réel)
q Le nombre NB= an an-1 an-2 ... a1 a0b1…bm-1bm exprimé en base B est converti en base 10
en appliquant la formule suivante:
NB = anBn + an-1Bn-1 + ... a1B + a0 + b1B-1 + b2B-2 + ... bm-1B-m+1 + bmB-m
Conversion réel base B en décimal
q Exemples
– 123,4510= 3*100 + 2*101 + 1*102 + 4*10-1 + 5*10-2
– 101,1012= 1*20 + 0*21 + 1*22 + 1*2-1 + 0*2-2 + 1*2-3=4+1+0,5+0,125=5,625
– AB,4E16= 11*160 + 10*161 + 4 *16-1 + 14*16-2
= 160 + 11 + 4 * 0,0625 + 14 x 0,00390625= 171,3046875
Conversion réel décimal en base B
q Lorsque le nombre N est fractionnaire, la conversion de sa partie
entière vers une base B s’effectue avec l’une des deux méthodes que
nous venons de voir.
q La conversion de la partie fractionnaire, s’effectue en la multipliant
par B.
– La multiplication est itérée sur la partie fractionnaire du résultat obtenu.
– La conversion de la partie fractionnaire du nombre N est obtenue par la
suite des parties entières de chacun des résultats des multiplications
effectuées
Conversion réel décimal en base B
q Exemple: 12,687510 en base 2 q Exemple: 0,4510 en base 2
– Conversion de 12: 11002 – Conversion de 0,45
• 0,45 * 2 = 0,9 = 0 + 0,9
– Conversion de 0,6875
• 0,90 * 2 = 1,8 = 1 + 0,8
• 0,6875 * 2= 1,375 = 1 + 0,375 • 0,8 * 2 = 1,6 = 1 + 0,6
• 0,375 * 2= 0,75 = 0 + 0,75 • 0,6 * 2 = 1,2 = 1 + 0,2
• 0,75 * 2= 1,5 = 1 + 0,5 • 0,2 * 2 = 0,4 = 0 + 0,4
• 0,5 *2= 1 =1+0 • 0,4 * 2 = 0,8 = 0 + 0,8
– (12,6875)10= (1100,1011)2 • 0,8 * 2 = 1,6 = 1 + 0,6
• 0,6 * 2 = 1,2 = 1 + 0,2
q Exemple 171,3046875 en hexadécimal – 0,4510= 0,011100112
– 17110= AB16 – Le développement s’arrête lorsque la
– Conversion de 0,3046875 précision voulue est obtenue
• 0,3046875*16=4,875= 4+0,875 q Exemple: 0,4510 en base 16
• 4 *16=14 = 14+0 – 0,45 * 16 = 7,20 = 7 + 0,2
– 0,20 * 16 = 3,2 = 3 + 0,2
– 171,304687510= AB,4E16
– 0,4510 = 0,7316
Représentation des nombres signés
qS’effectue selon une suite de bit d’une longueur fixé à n bits
– représentation des nombres signés sur 8 bits, 16 bits ou 32 bits.
qPlusieurs conventions de représentation
– choix est effectué par le constructeur de la machine et éventuellement par le
programmeur en fonction du type affecté aux variables déclarées.
• Dans le langage C, une déclaration avec un type int, est représenté sur 2 octets selon la
convention du complément à 2.
• une déclaration avec un type unsigned short détermine au contraire une représentation d’un
nombre sur 8 bits, non signé.
Convention de la valeur signée
q la chaîne de n bits an – 1 … a0 représentant le nombre signé est interprétée comme suit
:
q le bit de poids fort an – 1 est le bit de signe.
– Si sa valeur est 0, alors le nombre codé est positif.
– Si sa valeur est 1, alors le nombre codé est négatif;
– les autres bits an – 2 … a0 codent la valeur absolue du nombre.
q Exemples
– +7710 sur 8 bits : 010011012
– –7710 sur 8 bits : 110011012
q Remarque
– Deux représentations de la valeur 0 sont possibles
– 000000002 = (+ 0)10 sur 8 bits)
– 100000002= (– 0)10 sur 8 bits)
Convention de la valeur signée
q Remarque
– L’intervalle des nombres signés représentables est borné en fonction de la longueur de la
chaîne binaire utilisée pour la représentation.
• sur 8 bits, l’intervalle des nombres représentables est
[111111112, 0111111112], soit l’intervalle [-12710, + 12710]
q Intervalles des nombres présentables en valeur Signée
Longueur de la chaîne de bits Intervalle en base 10
8 bits [– 127, + 127]
16 bits [– 32 767, + 32 767]
32 bits [– 2 147 483 647, + 2 147 483 647]
p bits [– (2p – 1 – 1), + (2p – 1 – 1)]
Convention du complément à 2
Complément à 2 d’un nombre binaire
q Le complément à 2 ou complément vrai d’un nombre binaire N = an – 1 … a0 s’obtient
en ajoutant la valeur + 1 au complément restreint ou complément à 1 de ce nombre.
q Le complément à 1 ou complément restreint d’un nombre binaire N = N = an – 1 … a0
s’obtient en inversant la valeur de chacun des bits de ce nombre (les 1 deviennent 0 et
les 0 deviennent 1).
q Exemple
100010012
– Complément à 1 011101102
+ 12
– Complément à 2 011101112
Convention du complément à 2
Convention du complément à 2
q un nombre négatif – N exprimé sur n bits est représenté en prenant le complément à 2
de son équivalent positif + N.
q Un nombre positif + N est quant à lui représenté par sa valeur binaire sur n bits.
q Exemple
– +7710 sur 8 bits : 010011012
– –7710 sur 8 bits : +7710 01001101
– Complément à 1 10110010
– +1
– Complément à 2 10110011
Convention du complément à 2
Convention du complément à 2
q Le bit de poids fort an – 1 de la chaîne binaire an – 1 … a0 peut être également
interprété comme bit de signe.
q si an – 1 = 0 è an – 1 … a0 représente un nombre positif + N dont la valeur décimale
est donnée directement par la conversion de la chaîne depuis la base 2 vers la base
10;
q si an – 1 = 1è an – 1 … a0 représente un nombre négatif – N dont la valeur décimale est
celle du nombre positif associé + N obtenu en complémentant à 2 la chaîne an – 1 …
a0
q Exemples:
– 001100112 code un nombre positif qui a la valeur : 20+21+24+25=+5110
– 101100112 code un nombre négatif dont la valeur est obtenue en prenant son complément à 2, soit:
comp1(10110011)+1<=> 0100110 0+ 1= 01001101= 20+21+22+23+ 26= +7710
– 101100112=-7710
Convention du complément à 2
Convention du complément à 2
q Remarque
– une seule représentation du zéro : 000000002 = (+ 0)10 sur 8 bits.
– l’intervalle des nombres signés représentables est borné en fonction de la longueur de la chaîne binaire utilisée
pour la représentation.
– Sur 8 bits, l’intervalle des nombres représentables est [100000002, 0111111112],
soit l’intervalle [– 12810, + 12710].
– La chaîne 100000002 complémentée à 2 donne de nouveau la chaîne 100000002. Par convention, elle représente la
valeur – 12810 ;
– Soustraire un nombre A à un autre nombre B équivaut à additionner au nombre B le complément à 2 du nombre A.
q Intervalles des nombres représentables en complément à 2.
Longueur de la chaîne de bits Intervalle en base 10
8 bits [– 128, + 127]
16 bits [– 32 768, + 32 767]
32bits [– 2 147 483 648, + 2 147 483 647]
p bits [– 2p – 1 , + 2p – 1 – 1]
Représentation des nombres flottants
q Principe
– Un nombre est représenté en virgule flottante dans la base B s’il est mis sous la forme :
+M1,M2*B+e
– M1,M2: mantisse du nombre
– +e: caractéristique ou exposant
– Un nombre représenté en virgule flottante est normalisé a la forme: +0,M*B+e; M, un
nombre dont le 1er chiffre est non nul
q Exemple
– 1234,5 est normalisé en 0,12345*104
– 59,41*10-5 est normalisé en 0,5941*10-3
q Q: comment représenter la mantisse et son signe, l’exposant et son signe.
Représentation des nombres flottants
La norme IEEE 754(1985)
q Propose deux formats de représentation :
– un format simple précision sur 32 bits (type float en C) et
– un format double précision sur 64 bits (type double en C)
S E M Mantisse en base 2 avec un bit caché à 1 Simple précision
1 8 23 bits
32 bits
S E M Mantisse en base 2 avec un bit caché à 1 Double précision
1 11 52bits
64 bits
Représentation des nombres flottants
La norme IEEE 754
q La mantisse est normalisée sous la forme +1,M*2+e
– M est un nombre quelconque
– Le 1 précédant la virgule n’est pas codé en machine, il est appelé bit caché.
– Le signe de la mantisse est codé sur un bit : 0 si la mantisse est positive, et 1 si elle est négative.
– La valeur du nombre M est codée selon la base 2.
q Codage de l’exposant:
– l’exposant est codé en décalage (on dit aussi en excédant) par rapport à l’exposant de référence
• Simple précision : e est translaté de 127; e’= +e + 12710
• Double précision: e’= +e + 102310
Représentation des nombres flottants
La norme IEEE 754
q Exemple de -10,12510 en simple précision
– 10,12510 = 1010,0012= 1,0100012 *23
– L’exposant e’=310+12710=130= 100000102
– Le signe de la mantisse est négatif et vaut donc 1.
– Le codage donne donc la chaîne binaire :
1 10000010 010001000000000000000002 = C122000016
Représentation des nombres flottants
Les autres normes
qformat IBM La représentation des nombres flottants pour
les architectures IBM 370 admet trois formats :
– un format court sur 32 bits,
– un format long sur 64 bits et un format
– étendu sur 128 bits
Représentation des caractères
q S’effectue par l’association d’une chaîne binaire à chaque
caractère
q Selon la longueur de la chaîne binaire choisie par le code, le
nombre de caractères pouvant être codés est plus ou moins
important.
q Le nombre de caractères représentables par un code est appelé
puissance lexicographique du code
Représentation des caractères
qLe code ASCII (American Standard Code for Information
Interchange)
– inventée en 1961 par Bob Bemer
– contient les caractères nécessaires pour écrire en anglais
– codés en binaire sur 7 bits (128 caractères numérotés de 0 à 127) de 0000000 à
1111111
– 0 à 31 : directives de terminal (non affichables)
– Le code ASCII est très utilisé sur les processeurs de la famille Intel.
– Exemple:
• A = 4116 = 6510, a = 6116 = 9710,
Représentation des caractères
qLe code EBCDIC (Extended Binary Coded Decimal Interchange
Code)
– Un code à 8 bits permettant donc de coder 256 caractères.
– très utilisé sur les gros systèmes, notamment les systèmes de la famille IBM tels
que les architectures 370 et 390.
qLe code UNICODE (Universal Code)
– un code à 16 bits qui a pour but de coder le plus grand nombre possible de symboles en usage
dans le monde.
– Les 16 bits de code permettent de coder 65 536 caractères différents.
– Ce code est utilisé notamment sous les processeurs de type Pentium
Calcul dans la base B
qLes opérations arithmétiques (addition, soustraction, multiplication,
division) sont réalisables dans toute base B
– avec mêmes règles que pour la base décimale
– retenues également mais dépendant de la base
Résumons