• Aucun résultat trouvé

Chapitre III Repr´esentation de Donn´ees

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre III Repr´esentation de Donn´ees"

Copied!
35
0
0

Texte intégral

(1)

Chapitre III

Repr´ esentation de Donn´ ees

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

Compl´ements Compl´ement `a (r1)

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.

(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

(17)

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.

(18)

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

(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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.

(24)

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

(25)

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.

(26)

Repr´esentation en Virgule Fixe 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

(27)

Repr´esentation en Virgule Fixe 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.

(28)

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

(29)

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.

(30)

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

(31)

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).

(32)

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

(33)

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

(34)

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

(35)

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

Références

Documents relatifs

Pour les 3 configurations correspondant aux cas appel´ es d i = k.p j avec j &gt; i, l’impossibilit´ e vient du fait qu’entre un nombre premier et le nombre premier pr´ ec´

Q 2.5 Ecrire une macro verification qui demande ` a l’utilisateur de saisir un nombre compris entre 0 et 1023, convertit ce nombre en binaire en le stockant dans la feuille de

Propri´ et´ e (caract´ erisation des nombres r´ eels) : Un nombre complexe est r´eel si et seulement si sa partie imaginaire est nulle, i.e... Cette correspondance biunivoque entre C

Produit scalaire : d´ efinition en coordonn´ ees dans la base canonique, propri´ et´ es g´ e- n´ erales du produit scalaire, expression dans une base orthonorm´ ee quelconque..

Calibrer les param` etres de discr´ etisation de la repr´ esentation diffusive pour assurer une bonne pr´ ecision de la solution obtenue (expliciter la d´ emarche adopt´ ee

L’ordinateur de la batterie Patriot repr´esente les nombres par des nombres `a virgule fixe en base 2 avec une pr´ecision de 23 chiffres apr`es la virgule. L’horloge de la

Pour calculer les valeurs propres d’une matrice, calculer le polynˆ ome caract´ eristique de fa¸con na¨ıve n’est pas forc´ ement une bonne id´ ee : si on n’a pas de logiciel

De plus, pour que la tortue puisse dessiner dans l’´ ecran graphique, un attribut sera un objet de la classe Window..