Chapitre III
Repr´ esentation de Donn´ ees
Types de Donn´ees Syst`emes Num´eriques
Syst` emes Num´ eriques
Les quatre principaux syst`emes num´eriques sont :binaire,octal,hexad´ecimal, etd´ecimal (utilis´ee par les humains).
En g´en´eral, un syst`eme num´erique debase, ou deraisonrest un syst`eme qui utilise des symboles distincts pourr chiffres.
Un nombrexen baser, que l’on note (x)r, peut s’´ecrire de mani`ere g´en´erale:
(x)r =xnxn−1 . . . x1x0.x−1x−2 . . . x−m, o`uxi ∈ {0,1, . . . ,r−1}eti∈ {n,n−1, . . . ,−m}.
Pour convertir un nombre dans la forme ci-dessus `a la base d´ecimale (dont la raison est 10), la formule suivante est utilis´ee:
(x)r = (xn×rn + xn−1×rn−1 + · · · + x0×r0 + x−1×r−1 + · · · + x−m×r−m)10
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 3 / 36
Types de Donn´ees Syst`emes Num´eriques
Example 1.
Convertissez le nombre (32.4)5de la base 5 vers le syst`eme d´ecimal.
(32.4)5= (3×52+ 2×50+ 4×5−1)10= (15 + 2 + 4/5)10= (17.8)10
Types de Donn´ees Syst`eme Binaire
Syst` eme Binaire
Lesyst`eme binaireutilise2comme raison.
Par cons´equent, les chiffres du syst`eme binaire sont soit 0, soit 1.
Example 2.
Convertissez (101101)2du syst`eme binaire vers le syst`eme d´ecimal.
(101101)2= (1×25+ 0×24+ 1×23+ 1×22+ 0×21+ 1×20)10
= (32 + 0 + 8 + 4 + 0 + 1)10
= (45)10
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 5 / 36
Types de Donn´ees Syst`eme Octal
Syst` eme Octal
Le syst`emeoctalutilise8comme raison.
Par cons´equent, les chiffres du syst`eme octal se trouvent parmi{0,1,2, . . . ,7}.
Example 3.
Convertissez (736.4)8de la base octale vers le syst`eme d´ecimal.
(736.4)8= (7×82+ 3×81+ 6×80+ 4×8−1)10
= (7×64 + 3×8 + 6 + 4/8)10
= (478.5)10
Types de Donn´ees Syst`eme hexad´ecimal
Syst` eme hexad´ ecimal
Le syst`emehexad´ecimalutilise 16 comme raison.
Les chiffres du syst`eme hexad´ecimal se trouvent parmi{0,1,2, . . . ,9,A,B, . . . ,F}.
Les lettres deA`aF repr´esentent les nombres d´ecimaux 10 `a 15.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 7 / 36
Types de Donn´ees Syst`eme hexad´ecimal
Conversion
La conversion d’un nombre d´ecimal en son ´equivalent en baser est effectu´ee en s´eparant la partie enti`ere et la partie fractionnaire du nombre. Ensuite, on convertit chaque partie s´epar´ement.
La conversion de la partie enti`ere du nombre d´ecimal en repr´esentation en baserse fait par division successive parr, avec accumulation du reste.
La conversion de la partie fractionnaire du nombre d´ecimal en repr´esentation en baser est accomplie par multiplications successives parr, avec accumulation des chiffres entiers obtenus
Types de Donn´ees Syst`eme hexad´ecimal
Example 4.
Convertissez (41.6875)10du syst`eme d´ecimal vers le syst`eme binaire.
Figure 1:Conversion of decimal 41.6875 into binary
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 9 / 36
Types de Donn´ees Nombres binaires, octaux, et hexad´ecimaux
Nombres binaires, octaux, et hexad´ ecimaux
La conversion de la base binaire vers la base octale se fait ais´ement, en partitionnant le nombre binaire en groupes de 3 bits chacun.
Le chiffre octal correspondant est ensuite assign´e `a chaque groupe de bits.
La chaˆıne de chiffres octaux obtenue correspond `a l’´equivalent du nombre binaire.
La conversion de la base binaire vers la base hexad´ecimale est similaire, sauf que les bits sont partitionn´es en groupes de 4 bits chacun.
Example 5.
Figure 2: Conversion binaires, octaux, et hexad´ecimaux
Types de Donn´ees Codage binaire
Codage binaire
Le codage binaire consiste simplement `a remplacer chacun des chiffres d’un certain nombre par un code binaire.
Le “codage binaire” n’est pas la mˆeme chose que la “conversion en binaire”
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 11 / 36
Types de Donn´ees Codage binaire
Example 6 (Nombres octaux et hexad´ecimaux cod´es en binaire).
Table 1:Nombres octaux cod´es en binaire Table 2:Nombres hexad´ecimaux cod´es en binaire
Types de Donn´ees Codage binaire
Nombres d´ ecimaux cod´ es en binaire (BCD, ou binary-coded decimal)
Table 3:Nombres d´ecimaux cod´es en binaire (BCD)
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 13 / 36
Types de Donn´ees Codage binaire
Code ASCII
Puisque toutes les op´erations sont converties en chaˆıne de 0 et 1 avant d’ˆetre ex´ecut´ees, chaque caract`ere informatique poss`ede un code binaire ASCII unique (ASCII=American Standard Code for Information Exchange).
Table 4:Code ASCII
Compl´ements
Compl´ ements
Dans les ordinateurs num´eriques, les compl´ements sont principalement utilis´es pour repr´esenter les nombres n´egatifs.
Il y a deux types de compl´ements pour chaque syst`eme de raisonr: Le compl´ement `a (r−1), et
Le compl´ement `ar.
Par exemple, pour le syst`eme binaire (base 2), les deux types de compl´ements sont le compl´ement `a 1 et le compl´ement `a 2.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 15 / 36
Compl´ements Compl´ement `a (r−1)
Compl´ ement ` a (r − 1)
Pour un nombreNen baser avecnchiffres, le compl´ement `a (r−1) s’´ecrit [(rn−1)−N]r
Le compl´ement `a (r−1) d’un nombre peut aussi s’obtenir en retranchant chaque chiffre de (r−1).
Example 7.
Calculez le compl´ement `a 9 de (450)10. Calculez le compl´ement `a 1 de (0001111)2. Calculez le compl´ement `a 7 de (450)8. Calculez le compl´ement `a 15 de (A7F0)16.
Compl´ements Compl´ement `ar
Compl´ ement ` a r
Le compl´ement `ar d’un nombreN`anchiffres en baser est d´efini par ((rn−N)r siN6= 0,
0 siN= 0
Le compl´ement `ar peut aussi est calcul´e en ajoutant 1 au compl´ement `a (r−1).
On peut aussi calculer le compl´ement `ar en laissant tels quels les 0 les moins significatifs, puis en soustrayant `ar le premier chiffre non-nul `a partir de la droite, puis en soustrayant tous les autres chiffres plus significatifs `a (r−1).
Example 8.
Calculez le compl´ement `a 10 de (246700)10.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 17 / 36
Compl´ements Compl´ement `ar
Remarque
Le compl´ement du compl´ement redonne le nombre original (`a prouver!)
Si le nombre originalN contient un point (virgule), il faut l’enlever temporairement pour former le compl´ement d´esir´e. Ensuite, on rajoute le point au nombre compl´ement´e `a la mˆeme position relative.
Example 9.
Calculez le compl´ement `a 2 de (110.1100)2.
Repr´esentation en Virgule Fixe Repr´esentations de nombres binaires
Repr´ esentations de nombres binaires
Dans les syst`emes informatiques, les nombres binaires sont repr´esent´es comme sign´es ou non-sign´es.
Les nombresnon-sign´essont des nombres que l’on suppose toujours ˆetre non-n´egatifs (i.e.,
≥0).
Les nombressign´essont des nombres qui peuvent ˆetre soit n´egatifs, soit non-n´egatifs.
Le signe d’un nombre sign´e est d´etermin´e par la valeur d’un bit sp´ecifi´e au pr´ealable dans la repr´esentation du nombre. On appelle ce bit lebit de signe.
Habituellement, le bit de signe correspond au bit le plus `a gauche dans la repr´esentation du nombre.
La convention pour un syst`eme binaire est que le bit de signe est 0 pour un nombre non-n´egatif, et 1 pour un nombre n´egatif.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 19 / 36
Repr´esentation en Virgule Fixe Repr´esentations de nombres binaires
Example 10.
La valeur binaire non-sign´ee de 8 bits (10001110)2est ´equivalente `a (142)10.
Cependant, la valeur sign´ee de 8 bits (10001110)2est un nombre n´egatif puisque la valeur du bit de signe est 1. La valeur exacte de ce nombre d´epend de la convention utilis´ee pour repr´esenter les nombres n´egatifs.
Repr´esentation en Virgule Fixe Repr´esentations de nombres binaires
Nombres sign´ es
Lorsqu’un nombre sign´e est n´egatif, le bit de signe prend la valeur 1, et le reste peut ˆetre repr´esent´e de trois fa¸cons:
1 Repr´esentation en magnitude sign´ee
2 Repr´esentation en compl´ement `a 1 sign´e
3 Repr´esentation en compl´ement `a 2 sign´e
La repr´esentation enmagnitude sign´eed’un nombre n´egatif consiste en un bit de signe suivi par lamagnitudedu nombre.
Pour les deux autres repr´esentations, le nombre est repr´esent´e soit par le compl´ement `a 1, soit par le compl´ement `a 2, du nombre positif sign´e.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 21 / 36
Repr´esentation en Virgule Fixe Repr´esentations de nombres binaires
Example 11.
Consid´erez le nombre sign´e +14, rang´e dans un registre de 8 bits. Il est rang´e sous la forme:
00001110.
Bien qu’il n’y ait qu’une seule fa¸con de repr´esenter le nombre sign´e +14 dans un registre de 8 bits, on peut repr´esenter,−14 de trois fa¸cons diff´erentes:
En magnitude sign´ee,−14 est repr´esent´e par: 10001110.
En compl´ement `a 1 sign´e,−14 est repr´esent´e par: 11110001.
En compl´ement `a 2 sign´e,−14 est repr´esent´e par: 11110010.
Repr´esentation en Virgule Fixe Repr´esentations de nombres binaires
Le syst`eme en magnitude sign´ee n’est pas vraiment utilis´e pour l’arithm´etique des ordinateurs d’aujourd’hui.
Le compl´ement `a 1 prˆete `a confusion car il y a deux repr´esentations diff´erentes de 0 (+0 et
−0), et donc on l’utilise rarement dans les syst`emes informatiques actuels.
La plupart des ordinateurs d’aujourd’hui utilisent la repr´esentation en compl´ement `a 2 sign´ee pour les nombres n´egatifs.
Example 12.
Quels sont le nombre positif maximal et le nombre n´egatif minimal, repr´esent´e en compl´ement `a 2, que l’on peut ranger dans un registre de n bits?
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 23 / 36
Repr´esentation en Virgule Fixe Soustraction de nombres non-sign´es
Soustraction de nombres non-sign´ es
Pour effectuer la soustractionM−Nde deux nombres non-sign´es denchiffres, o`uNest diff´erent de 0, en baser, on suit la proc´edure ci-dessous:
1 On ajouteMau compl´ement `ardeN. Ceci effectueM+ (rn−N) =M−N+rn.
2 SiM≥N, la somme va engendrer une retenue de sortiernqui doit ˆetre ignor´ee, et ce qui reste est le r´esultat deM−N.
3 Cependant, siM<N, alors la somme n’engendre pas de retenue de sortie et est ´egale `a rn−(N−M), qui est le compl´ement `arde (N−M).
Dans ce dernier cas, pour obtenir la solution dans une forme plus famili`ere, on peut prendre le compl´ement `ar de la somme, et placer un signe n´egatif `a l’avant.
Example 13.
Faites l’op´eration non-sign´ee 72532−13250 en base 10.
Example 14.
Faites l’op´eration non-sign´ee 1010100−1000011 en base 2.
Repr´esentation en Virgule Fixe Addition arithm´etique
Addition arithm´ etique
Diff´erentes op´erations arithm´etiques peuvent ˆetre adopt´ees pour diff´erentes repr´esentations de nombres n´egatifs sign´es.
Nous utiliserons la repr´esentation en compl´ement `a 2 pour repr´esenter les nombres n´egatifs, car c’est la plus utilis´ee dans les syst`emes informatiques d’aujourd’hui.
La proc´edure d’addition en compl´ement `a 2 sign´e peut se formuler ainsi:
Ajouter les deux nombres, enincluantleur bit de signe, etignorertoute retenue en dehors de la position du bit de signe.
Example 15.
Faites les op´erations sign´ees suivantes, en 8 bits:
+6 + 13
−6 + 13 +6 + (−13)
−6 + (−13)
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 25 / 36
Repr´esentation en Virgule Fixe Soustraction arithm´etique
Soustraction arithm´ etique
La soustraction de deux nombres binaires sign´es lorsque
les nombres n´egatifs sont repr´esent´es en compl´ement `a 2 se fait suivant la proc´edure ci-dessous:
Prendre le compl´ement `a 2 du deuxi`eme op´erande, enincluantle bit de signe, puis l’ajouter au premier op´erande, enincluantle bit de signe. Une retenue en dehors de la position du bit de signe estignor´ee.
L’id´ee derri`ere cette technique est que:
(±A)−(+B) = (±A) + (−B) (±A)−(−B) = (±A) + (+B)
Example 16.
Effectuez (−6)−(−13) en repr´esentation sign´ee de 8 bits.
Repr´esentation en Virgule Fixe D´ebordement (overflow)
D´ ebordement (overflow)
Si une op´eration sur deux nombres denchiffres engendre un nombre de plus denchiffres, on dit qu’und´ebordementa lieu (overflow).
Pour un syst`eme informatique qui utilise des registres denbits, la signification pratique d’un d´ebordement est que le r´esultat de l’op´eration ne peut pas ˆetre rang´e dans un registre (il y a plus de bits que ce qu’un registre peut contenir).
Lorsque l’on con¸coit des syst`emes informatiques, ou lorsqu’on ´ecrit des programmes de bas niveau, il fautexplicitementv´erifier qu’il n’y a pas eu d´ebordement apr`es chaque op´eration.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 27 / 36
Repr´esentation en Virgule Fixe D´etection d’un d´ebordement
D´ etection d’un d´ ebordement
Pour les nombres non-sign´es,
un d´ebordement dans une op´eration d’addition est d´etect´e par la retenue de sortie d’un bit le plus significatif. Une valeur de 1 veut dire qu’un d´ebordement a eu lieu.
un d´ebordement dans une op´eration de soustraction ne peut pas exister.
Pour les nombres sign´es, un d´ebordement dans une op´eration d’addition ou de soustraction peut ˆetre d´etect´e en observant la retenue d’entr´eedans la position du bit de signe, et la retenue desortiede la position du bit de signe. Si les deux retenues sont diff´erentes, alors un d´ebordement a eu lieu.
Dans ce dernier cas, si les deux retenues sont appliqu´ees `a une porte OU-EXCLUSIF (XOR), alors un d´ebordement a eu lieu si la sortie de la porte est 1.
Example 17.
Effectuez (7 + 8) en repr´esentation non-sign´ee de 4 bits.
Effectuez (3 + 5) en repr´esentation sign´ee de 4 bits.
Effectuez (−3) + (−5) en repr´esentation sign´ee de 4 bits.
Repr´esentation en Virgule Fixe Repr´esentation d´ecimale en point fixe
Repr´ esentation d´ ecimale en point fixe
La repr´esentation de nombres d´ecimaux sign´es en BCD est similaire `a celle de nombres binaires:
Soit en magnitude sign´ee, ou
En repr´esentation en compl´ement sign´e.
Le signe d’un nombre sign´e en BCD est d´esign´e par 0000 pour un nombre non-n´egatif, et par 1001 (i.e., la valeur BCD de 9) pour un nombre n´egatif.
Pour obtenir le compl´ement `a 10 d’un nombre BCD, on prend d’abord le compl´ement `a 9 de ce nombre, et on y ajoute 1.
Le compl´ement `a 9 est calcul´e en soustrayant chaque chiffre `a 9.
Example 18.
Calculez (+375) + (−240) dans le syst`eme BCD en utilisant une repr´esentation de 16 bits sign´ee.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 29 / 36
Repr´esentation en Virgule Fixe Repr´esentation d´ecimale en point fixe
L’addition de nombres en BCD se fait avec des additionneurs BCD (qui sont diff´erents des additionneurs binaires).
La soustraction de nombres BCD, qu’ils soient non-sign´es ou en compl´ement `a 10 sign´es, se fait de la mˆeme mani`ere que pour les nombres binaires:
1 D’abord, on prend le compl´ement `a 10 du deuxi`eme op´erande, repr´esent´e en BCD
2 Puis on lui ajoute le premier op´erande.
Repr´esentation en point flottant
Repr´ esentation en point flottant
La repr´esentation en point flottant (ou virgule flottante en Europe) d’un nombre comprend deux parties:
Unemantisse(aussi appel´eefraction), qui est un nombre sign´e en point fixe, et Unexposant, qui est un nombre sign´e en point fixe qui repr´esente la position du point Une mantisse en point fixe peut ˆetre soit un entier, soit une fraction.
Example 19.
+6132.789 peut se repr´esenter en point flottant comme ceci:
Fraction Exposant
+0.6132789 +04
En notation scientifique: 0.6132789×10+4
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 31 / 36
Repr´esentation en point flottant
Un point flottant est toujours interpr´et´e comme un nombre sous la forme suivant:
m×re
Seule la mantissemet l’exposantesont physiquement rang´es dans des registres (leur signe inclus).
La position du point et la raisonrsont suppos´ees ˆetre connues (fix´ees pour un appareil donn´e).
Repr´esentation en point flottant
Dans le syst`eme binaire, on peut repr´esenter le nombre +1001.00 avec une mantisse de 8 bits et un exposant de 6 bits ainsi:
Fraction Exposant
01001110 000100
Le bit le plus `a gauche dans la mantisse et dans l’exposant d´enote le bit de signe.
Il est sous-entendu que le point binaire de la mantisse est `a droite du bit de signe.
Le nombre en point flottant ci-dessus est ´equivalent `a:
m×2e= +(.1001110)2×2+4
Un nombre en point flottant est ditnormalis´esi le chiffre le plus significatif (en excluant le bit de signe s’il existe) est non nul.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 33 / 36
Repr´esentation en point flottant
Example 20.
Un nombre sign´e en point flottant avec une mantisse de 01100011 est un nombre normalis´e.
Un nombre en point flottant non sign´e avec une mantisse de 01100011 n’est pas un nombre normalis´e.
Example 21.
La version normalis´ee d’un nombre binaire en point flottant avec la mantisse sign´ee et l’exposant sign´e suivants:
Fraction Exposant 00011000 00000101 est
Fraction Exponent 01100000 00000011
Codes d´etecteurs d’erreurs
Codes d´ etecteurs d’erreurs
L’information binaire transmise `a travers un m´edium de communication est sujet `a du bruit externe qui peut changer des bits de 0 `a 1 et vice versa.
Uncode d´etecteur d’erreurest un code binaire qui d´etecte des erreurs num´eriques lors de la transmission.
Le code d´etecteur d’erreur le plus courant est le code de parit´e.
Uncode de parit´eest un bit suppl´ementaire ajout´e au message binaire pour rendre le nombre de 1 impair (code de parit´e impair) ou pair (code de parit´e pair).
Un message de 3 bits avec deux bits de parit´e possibles est montr´e ci-dessous:
Table 5:G´en´eration de bit de parit´e
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 35 / 36
Codes d´etecteurs d’erreurs
Au niveau du transmetteur, le message est appliqu´e `a ung´en´erateur de parit´epour g´en´erer le bit de parit´e requis.
Au niveau du r´ecepteur, tous les bits arrivants (en incluant le bit de parit´e) sont appliqu´es au v´erificateur de parit´eafin de d´etecter s’il y a une erreur
Figure 3: D´etection d’erreur avec bit de parit´e impair