Vous êtes sur la page 1sur 79

CHAPITRE 2 LA REPRSENTATION DES DONNES

1. LES SYSTEMES DE NUMRATION


Dans la vie de tous jours, nous avons pris l'habitude de reprsenter les nombres en utilisant dix symboles diffrents, savoir les chiffres suivants: 0 1 2 3 4 5 6 7 8 9 Ce systme est appele le systme dcimal (dci signifie dix). Il existe cependant d'autres formes de numration qui fonctionnent en utilisant un nombre de symboles distincts, par exemple le systme binaire (bi: deux), le systme octal (oct: huit), le systme hexadcimal (hexa: seize). En fait, on peut utiliser n'importe quel nombre de symboles diffrents (pas ncessairement des chiffres) dans un systme de numration; ce nombre de symboles distincts est appel la base du systme de numration. Le schma suivant montre les symboles utiliss des principaux systmes rencontrs. Tableau 1 :Systmes de numration Systme Binaire Ternaire Octal Dcimal Hexadcimal Base 2 3 8 10 16 Symboles utiliss 01 012 01234567 0123456789 0123456789ABCDEF

Le systme binaire est utilis en informatique parce qu'il n'a besoin que de deux symboles le rendant tout fait appropri pour les circuits lectriques qui, eux-mmes, ne prsentent gnralement que deux tats possibles: le circuit est allum (1) ou teint (0). On peut aussi les reprsenter avec les variables logiques VRAI ou FAUX. Dans le systme binaire, les tables d'addition et de multiplication sont trs simples. Cela facilite l'implantation des algorithmes de calcul:

Richard Tremblay et Djamal Rebane

systmes de numration

Figure 1: Calcul en binaire Addition Binaire 1 + 0 0 1 1 1 0 0 0 X Multiplication Binaire 0 0 0 0 0 0 1 1 1 1

Les informations manipules par une machine ne sont pas tous des nombres. Il faut donc donner tous les caractres utiliss (lettres de l'alphabet, espaces, caractres de contrle, instructions, etc.), une forme numrique (codification) avant de pouvoir les traduire en binaire. L'ordinateur ne reconnat et ne traite que des chanes binaires. Les principaux systmes de codification en chanes binaires seront abords plus loin. Disons simplement pour linstant quau lieu de coder tous ces caractres sous forme de nombres dcimaux, on utilise le systme binaire et d'autres systmes de numration, surtout les systmes octal et hexadcimal. Ces derniers systmes sont plus commodes utiliser, leur base respective tant plus grande que 2, tout en tant un multiple de 2. Ils produisent des chanes de caractres plus courtes qu'en binaire pour une mme quantit d'information, et ces chanes sont plus faciles traduire en chanes binaires que les chanes correspondantes en notation dcimale. Commenons donc par regarder de plus prs ces diffrents systmes de numration, et examinons les moyens de passer d'un systme un autre. 1.1. Bases et exposants

Il est trs utile de noter que, lorsqu'on utilise le systme dcimal, on compte de la faon suivante: on numre tous les symboles possibles, 0, 1, 2, jusqu' 9. Une fois la liste de symboles puise, on ajoute une position gauche pour former le nombre suivant: 10. La valeur du 1 de 10 est cependant 10 fois plus grande que celle du simple 1 en premire position. C'est que le poids associ au symbole diffre selon la position o il est situ. Bref, la notion de dizaine, centaines, milliers, etc. exprime en fait l'exposant que prend la base 10 donnant le poids de la deuxime, troisime, etc. position du chiffre dans la reprsentation du nombre. En binaire, le nombre de symboles se limite deux. Une fois les deux symboles puiss, il faut dj ajouter une position gauche. Ainsi, aprs 0 et 1, il faut passer 10 dont le 1 de la deuxime position vaut cependant deux fois plus que le simple 1 de la premire position. Une fois les possibilits de deux positions puises, une troisime position est ajoute, et celle-ci vaut deux fois plus que la prcdente, et ainsi de suite; puisque la base est 2, le poids associ chaque position augmente d'un facteur de deux chaque fois.

Richard Tremblay et Djamal Rebane

systmes de numration

On peut indiquer la base d'un nombre en crivant l'indice correspondant droite du nombre : Exemple: 7348 signifie que 734 est la reprsentation d'un nombre exprim en base 8. Lorsque la base n'est pas indique, cela voudra dire, par convention, que le nombre reprsent est exprim en base 10, notre systme familier tous. Le tableau suivant montre la correspondance entre divers systmes de bases diffrentes. Tableau 2 : Valeurs quivalentes exprimes dans les principales bases BINAIRE 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 11001 11010 11011 11100 11101 11110 11111 100000 DCIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 25 26 27 28 29 30 31 32 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 31 32 33 34 35 36 37 40 HEXADCIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 19 1A 1B 1C 1D 1E 1F 20

On a par exemple, 100112 = 1910 = 238 = 1316

Richard Tremblay et Djamal Rebane

systmes de numration

On peut aussi dcomposer un nombre en mettant en vidence les facteurs qui multiplient les diffrentes puissances auxquelles est leve la base. Par exemple, 12510 peut se rcrire: (1 x 102) + (2 x 101) + (5 x 100) = 100 + 20 + 5 = 125 L'valuation de l'expression, calcule en base 10, donne la valeur (en base 10) du nombre considr. De la mme faon, 0.52810 peut se rcrire: (5 x 10-1) + (2 x 10-2) + (8 x 10-3) = .5 + .02 + .008 = .528 D'une manire plus gnrale, un nombre N crit en base b sexprime de la manire suivante: N b = (Cn 1 b n 1 ) + (Cn 2 b n 2 ) + . . . + (C1 b 1 ) + (C0 b 0 ) + (C1 b 1 ) + (C 2 b 2 )+. . . + (C m b m ) + o N C b n -m 1.2. 1.2.1 est un nombre un chiffre ou un symbole composant le nombre la base le rang du symbole le plus gauche du point le rang du symbole le plus droite du point

Conversion d'une base l'autre Conversion d'un systme de base b au systme dcimal

On peut aussi dcomposer ainsi les nombres de n'importe quelle base en somme de facteurs de la base leve en puissances. Par exemple, 2378 peut se rcrire: (2 x 82) + (3 x 81) + (7 x 80) = 2378 Or, comme on sait que:

82 8 8
1 0

= = =

6 410 8 10 11 0

On peut faire la conversion suivante:

Richard Tremblay et Djamal Rebane

systmes de numration

2 3 7 8 = (2 8 2 ) + (3 8 1 ) + (7 8 0 ) = (2 6 4 ) + (3 8 ) + (7 1 ) = 1 59 10
On rappelle que l'valuation des calculs effectus en base 10 donne l'expression en base 10 du nombre. Le procd est le mme quelque soit la base. Ainsi, pour trouver ce que vaut 11011.12 en base 10 on dcompose ce nombre comme suit: 1 0 1 1. 1 2 = (1 2 3 ) + (0 2 2 ) + (1 2 1 ) + (1 2 0 ) + (1 2 1 ) = (1 8 ) + (0 4 ) + (1 2 ) + (1 1) + (1 0 . 5) = 8 + 0 + 2 + 1 + 0 .5 = 1 1. 5 1 0 Exemple 1 : Trouver la valeur en base 10 de D3F416 D 3 F. 4 1 6 = (D 1 6 2 ) + (3 1 6 1 ) + (F 1 6 0 ) + (4 1 6 1 ) = (1 3 2 5 6 ) + (3 1 6 ) + (1 5 1) + (4 0 . 6 2 5 ) = 3 32 8 + 4 8 + 1 5 + 0 .2 5 = 3 3 9 1. 2 5 1 0 1.2.2 Conversion du systme dcimal au systme de base b

1.2.2.1 Les entiers Si on divise un nombre dcimal, par exemple 125, par 10 (la base) on obtient: 1 25 = 12 10 re s t e 5

On peut galement dire que 125 modulo 10 gale 5. Or 5 est le dernier chiffre du nombre 125. Soit ce qui reste lorsqu'on a form toutes les dizaines possibles. De plus, la partie entire du rsultat, cest--dire le nombre de dizaines, peut tre obtenue par l'opration 125 DIV 10 . Si on reprend le rsultat de la division, soit 12, et qu'on l'on divise nouveau par la base, on obtient: 12 =1 10 re s t e 2

Qui pourrait aussi se dire 12 modulo 10 = 2. On constate que 2 est le second chiffre du nombre 125. Divisons encore une fois 1 par 10. On obtient:

Richard Tremblay et Djamal Rebane

systmes de numration

1 =0 10

re s t e 1

On s'aperoit que le reste, 1, est galement le premier chiffre de 125, le nombre de dpart. Comme le rsultat de cette dernire division est 0, toute autre division par 10 par la suite donnera comme rsultat 0. Maintenant si on regroupe les restes des divisions, en commenant par le dernier, on obtient 1, 2 et 5, soient les trois chiffres constituant le nombre de dpart. Cela s'explique par le fait que chaque chiffre composant le nombre a comme poids un multiple de 10, la base. Puisque:
1 2 5 = (1 1 0 ) + (2 1 0 ) + (5 1 0 ) ,
2 1 0

Il est normal que les divisions successives par 10 nous donnent 5, 2 et 1 comme restes On peut rcapituler les oprations l'aide d'un tableau:

DPART DIV 10 = Reste =

125 12 5

12 1 2

1 0 1

Supposons maintenant que nous voulions connatre l'expression en base 8 de 15910 . On sait que ce nombre devra se dcomposer tel que:

1 5 910

. ..

2 1 0 + (C2 8 ) + (C1 8 ) + (C0 8 )

Comme on sait que le nombre de symboles en base 8 est limit 8, on peut tre certain que C0 sera infrieur 8, c'est--dire un nombre parmi l'ensemble {0, 1, 2, 3, 4, 5, 6, 7}. C'est donc dire que C0 est le reste de la division du nombre de dpart par 8, la base dsire:
1 59 =19 8 re s t e 7

donc C0 = 7 Par la mthode de divisions successives, on obtient:

Richard Tremblay et Djamal Rebane

systmes de numration

DPART DIV 8 = Reste =

159 19 7

19 2 3

2 0 2

En regroupant les restes, partir du dernier, on obtient 2378 soit la valeur de 15910 en base 8.
Exemple 2 : Trouver la valeur en base 16 de 339110 :

DPART DIV 16 = Reste =

3391 211 15

211 13 3

13 0 13

Si on regroupe dans l'ordre inverse les restes obtenus en sachant que dans la base 16, 13 s'crit D et 15 est reprsent par le symbole F, on obtient 339110 = D3F16 . On peut ainsi trouver l'quivalent d'un entier de base 10 dans n'importe laquelle base b. Il suffit de faire des divisions par b les parties entires obtenues de faon rcursive jusqu' ce qu'on obtienne toujours un zro comme quotient, et de rassembler ensuite les restes des divisions trouvs dans l'ordre inverse. Notons que l'on a toujours
N 1 0 = (N 1 0 D IV b ) b + N 1 0 MOD b ,

expression utile servant trouver la reprsentation en base b du nombre N10 par applications successives.
1.2.2.2 Les fractions

Quelle que soit la base utilise, la quantit reprsente est la mme; ce ne sont que les symboles avec laquelle cette quantit est reprsente qui changent. Comme une fraction est un nombre infrieur 1 et que le symbole 1 a la mme signification dans toutes les bases, la partie fractionnaire d'un nombre dans une base donne demeure fractionnaire dans toute autre base. On sait aussi que la partie fractionnaire d'un nombre exprime en base b peut se rcrire:

Richard Tremblay et Djamal Rebane

systmes de numration

C 1 b 1 + C 2 b 2 +

.. .

+ C m b m

Par exemple, 0.356018 peut s'crire sous la forme (3 x 8-1) + (5 x 8-2) + (6 x 8-3) + (0 x 8-4) + (1 x 8-5) et de mme: 0.125010 se rcrit (1 X 10-1) + (2 X 10-2) + (5 X 10-3) . Le problme pos maintenant est de trouver la valeur des coefficients : C-1, C-2, C-3, ... , C-m, quelque soit la base choisie b. On remarque que si on multiplie la dernire expression par 10 (la base), on obtient: (1 x 100) + (2 x 10-1) + (5 x 10-2) = 1.2510. Si on multiplie de nouveau par 10 la nouvelle partie fractionnaire obtenue, soit la fraction 0.2510, on obtient: (2 x 100) + (5 x 10-1) = 2.510. En multipliant de nouveau par 10, la partie fractionnaire de l'expression prcdente, soit 0.510, on obtient: (5 x 100) = 510. En regroupant dans l'ordre les parties entires obtenues chacune des multiplications prcdentes (cest--dire 1, 2 et 5), on retrouve les coefficients C-1, C-2 et C-3. On peut ici encore prsenter les rsultats obtenus, comme on l'a fait pour les coefficients d'indices positifs pour les entiers, dans un tableau:

Richard Tremblay et Djamal Rebane

systmes de numration

Figure 2: Transformation de fraction dcimale en base b

b=

Fraction ( multiplier) Partie entire Partie fractionnaire

.125

.25

.5

Rsultat de la multiplication par la base b

.25

.50

.00

Liste des chiffres composant la fraction en base b

Position du point On retrouve, bien sr, la fraction de dpart 0.12510. Pour trouver la valeur dans une base b quelconque d'un nombre fractionnaire exprim au dpart en base 10, on procde de la mme manire, c'est dire par des multiplications successives de la partie fractionnaire des rsultats chaque tape par b. Ainsi, pour trouver la valeur en base 8 de 0.35937510, on fait une srie de multiplications par 8. Les rsultats de ces multiplications successives des parties fractionnaires sont rsums dans le tableau suivant:

Richard Tremblay et Djamal Rebane

systmes de numration

Figure 3: Transformation de fraction dcimale en base b

b=8

Fraction ( multiplier) Partie entire Partie fractionnaire

. 359375

.875

.00

Rsultat de la multiplication par la base b

.875

.00

.00

Liste des chiffres composant la fraction en base b

Position du point

Regroupant les entiers obtenus dans la deuxime ligne du tableau, on trouve alors l'galit 0.35937510 = 0.278

10

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 3 :. Trouver la valeur binaire de 0.312510:

b=2

Fraction ( multiplier)

.3125

.625

.25

.50

Rsultat De la multiplication par la base b

Partie entire Partie fractionnaire

.625

.25

.50

.00

Liste des chiffres composant la fraction en base b 0 1 0 1 0 0 0 0 0 0 0

Position du point dcimal

donc 0.312510= 0.01012

11

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 4 : Trouver la valeur 0.726562510 en hexadcimal:

b = 16

Fraction ( multiplier) Partie entire Partie fractionnaire

. 7265625

.625

.00

Rsultat de la multiplication par la base b

B (11)

A (10)

.625

.00

.00

Liste des chiffres composant la fraction en base b

Position du point

C'est--dire 0.726562510 = 0.BA16

12

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 5 :. Trouver la valeur octale de 0.110:

Transformation de fractions dcimales en base b b=8 entier fraction

.1 0 .8

.8 6 .4

.4 3 .2

.2 1 .6

.6 4 .8

.8 6 .4

.4 3 .2

.2 1 .6

.6 4 .8

.8 6 .4

Liste des chiffres composant la fraction en base b 0 6 3 1 4 6 3 1 4 6 .

Position du point dcimal On obtient 0.110 = 0.0[6314][6314][6314][...]8. On se rend compte que le nombre fractionnaire 0.110, reprsent dans la base 10 par une suite finie de dcimales non nulles, est reprsent par une suite infinie de dcimales non nulles dans la reprsentation en octal (les chiffres 3146 sont rpts indfiniment). Pour trouver la valeur en base b d'un nombre qui comprend la fois une partie entire et une partie fractionnaire, on utilise les deux mthodes exposes plus haut: d'abord on trouve la valeur de la partie entire en faisant une suite de divisions par la base et en regroupant dans l'ordre inverse les restes obtenus. Ensuite, on convertit la partie fractionnaire en effectuant une suite de multiplications par la base, les parties entires des rsultats intermdiaires obtenus successivement nous fournissant les chiffres de la reprsentation dsire.
1.2.3 Conversion du binaire vers l'octal

Puisque 8 = 23, la base 8 est un multiple de la base 2. Cette constatation simplifie grandement la conversion d'un nombre octal en binaire et vice-versa. En effet, en binaire, 78 s'crit 1112. C'est donc dire qu'il ne faut jamais plus de trois positions binaires pour reprsenter un symbole octal, tous forcment plus petits que 7. Mais voyons de plus prs la relation qui existe entre un nombre en binaire et son quivalent octal l'aide d'un exemple. Soit un nombre binaire quelconque, par exemple 1010102. Ce nombre peut se rcrire ainsi: 1010102 = (1 x 25) + (0 x 24) + (1 x 23) + (0 x 22) + (1 x 21) + (0 x 20)

13

Richard Tremblay et Djamal Rebane

systmes de numration

Comme les exposants des trois premiers membres de l'expression sont suprieurs 3, on pourrait rcrire l'expression en mettant (23 = 8) en vidence: 1010102 = 23 x [(1 x 22) + (0 x 21) + (1 x 20)] + 1 x [(0 x 22) + (1 x 21) + (0 x 20)] Comme tout nombre lev la puissance 0 donne 1 , on pourrait aussi crire: 1010102 = 81 x [(1 x 22) + (0 x 21) + (1 x 20)] + 80 x [(0 * 22) + (1 * 21) + (0 * 20)] en valuant les expressions entre parenthses: 1010102 = 81 X [4 + 0 + 1] + 80 X [0 + 2 + 0] = (5 X 81) + (2 X 80) = 528 Autrement dit, chaque tranche de trois bits d'un nombre binaire correspond un symbole octal. 1010102 = [101] 2 [010]2 = 528 Il suffit donc de sparer le nombre binaire en tranches de trois bits et de trouver la valeur quivalente en dcimal de chaque tranche, donnant ainsi le symbole en octal pour chaque tranche.
Exemple 6 :

Passage de la base binaire la base 4210 = 1010102 = 528

Premier groupe de 3 bits

Deuxime groupe de 3 bits

Valeur en binaire

1 0 1

0 1 0

Valeur en octal

5 2
La conversion d'un nombre octal en binaire suit le processus inverse, c'est--dire qu'il s'agit de trouver la valeur binaire (sur trois bits) de chaque symbole octal. 14

Richard Tremblay et Djamal Rebane

systmes de numration

On trouve donc 528 = 101 0102


Exemple 7 :

Passage de la base octale la base binaire 748 = 1111002 = 6010

Valeur on octal

74

Valeur en binaire

1 1 1

1 0 0

Premier chiffre octal sur 3 bits Deuxime chiffre octal sur 3 bits

On trouve donc 748 = 111 1002


1.2.4 La conversion du binaire l'hexadcimal

Pour passer du binaire l'hexadcimal, le principe est le mme que pour passer du binaire l'octal. Cependant, comme 16 = 24, on spare cette fois-ci le nombre binaire en tranches de 4 bits et on trouve la valeur hexadcimale correspondant chaque tranche. Inversement, la conversion d'un nombre hexadcimal en binaire se fait en juxtaposant les valeurs binaires (sur 4 bits) de chaque symbole hexadcimal.
Exemple 8 : Trouver la valeur binaire de D3F4A16

15

Richard Tremblay et Djamal Rebane

systmes de numration

Passage de la base hexadcimale la base binaire D3F4A16 = 1101 0011 1111 0100 10102

Valeur en hexadcimal

D 3 F 4 A

Valeur en binaire

1101

0011

1111

0100

1010

1er chiffre Hexadcimal sur 4 bits 2me chiffre Hexadcimal sur 4 bits

3me chiffre Hexadcimal sur 4 bits 4me et 5me chiffre hexadecimal sur 4 bits

On trouve donc D3F.4A16 = 110100111111.010010102

16

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 9 : Exprimer 100111001101010012 en hexadcimal.

Passage de la base binaire la base hexadcimale 1 0011 1001 1010 10012 = 139A916

2me groupe 1er groupe

3me groupe

4me et 5me

Valeur en binaire

0001

0011

1001

1010

1001

Valeur en hexadcimal

139A9

On trouve alors: 100111001101010012= 139A916. Notons que la procdure de passage d'une base puissance 2 une autre base puissance 2, par exemple de binaire l'hexadcimal, tient toujours mme si les nombres sont fractionnaires. On considre alors les tranches de 4 bits du point dcimal en allant vers la droite pour la partie fractionnaire du nombre considr et les tranches de 4 bits en allant vers la gauche pour la partie entire du nombre. Il en est de mme pour le passage de la base binaire la base octale, except que les tranches dans ce cas sont de 3 bits au lieu de 4. A l'inverse, on obtient le passage d'une base hexadcimale (ou octale) la base binaire d'un nombre fractionnaire en exprimant en binaire chacun des caractres du nombre sur 4 bits (ou sur 3 bits pour la base octale) tout en respectant la position du point dcimal. Voyons cela sur les exemples suivants.

17

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 10 : Exprimer le nombre B3F.A316 en binaire.

Passage de la base hexadcimale la base binaire pour les nombres fractionnaires B3F.A316 = 1011 0011 1111 . 1010 00112

Valeur en hexadcimal

B 3 F

A 3

Valeur en binaire

1011

0011

1111 .

1010

0011

Partie entire 1er chiffre hexadcimal sur 4 bits 2me chiffre hexadcimal sur 4 bits Partie fractionnaire 3me chiffre hexadcimal sur 4 bits 1er et 2me chiffre hexadcimal sur 4 bits Point dcimal

On a donc : B3F.A316 = 101100111111.101000112.

18

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 11 : Trouver l'expression de 57.628 en binaire.

Passage de la base octale la base binaire pour les les nombres fractionnaires 57.628 = 101 111.110 0102

Valeur en octal

57.62

Valeur en binaire

101

111

110

010

Partie entire 1er chiffre octal sur 3 bits 2me chiffre octal sur 3 bits Partie fractionnaire 1er et 2me chiffre octal sur 3 bits Point dcimal

On a donc : 57.628 = 101111.111012

19

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 12 : Trouver la reprsentation de 34.618 en notation hexadcimale.

Passage de la base octale la base pour les nombres

34.618 = 1C.C416

Valeur en octal

34.61

Valeur en binaire - regroupement sur 3 bits 011 100 110 001

- regroupement sur 4 bits

0001

1100

1100

0100

Valeur en hexadcimal

1C

C4

On a donc 34.618 = 1C.C416


1.2.5 Conclusion sur les changements de base

On peut constater qu'il est relativement facile de passer du systme octal ou hexadcimal au systme binaire. Cette opration est facile automatiser. Lors de la compilation d'un programme, les caractres sont d'abord cods en chanes de caractres en hexadcimal, selon un code prtabli (code ASCII, EBCDIC, ...), et ensuite traduit en chanes binaires (langage machine). L'utilisation de systmes numriques de base, multiples de 2, diffrent du systme dcimal, permet de simplifier la codification et les calculs dans le langage des ordinateurs.

20

Richard Tremblay et Djamal Rebane

systmes de numration

Tableau 3 : Rsum des mthodes de conversion.

RSUM SUR LES MTHODES DE CONVERSION D'UN SYSTEME DE NUMRATION UN AUTRE


D Base b dcimal MTHODE

rcrire sous forme de polynme calcul arithmtique des termes

Partie entire

succession de divisions entires par b regroupement dans l'ordre inverse des restes obtenus

dcimal base b

Partie fractionnaire

binaire octal

multiplications successives par b de la partie fractionnaire regroupement des entiers obtenus trouver la valeur octale de chaque tranche de 3 bits

octal

binaire

trouver la valeur binaire (sur 3 bits) de chaque symbole octal trouver la valeur de chaque tranche de 4 bits

binaire

hexadcimal

hexadcimale

binaire

trouver la valeur binaire (sur 4 bits) de chaque symbole hexadcimale

21

Richard Tremblay et Djamal Rebane

systmes de numration

Notes sur les diffrents systmes de numration

Le format hexadcimal est largement utilis en informatique car il offre une conversion facile avec le systme binaire, qui est le systme employ par les ordinateurs. Il est, comme nous venons de le voir, possible de traduire du binaire vers de l'hexadcimal et rciproquement, groupe de chiffres par groupe de chiffres. Cette facilit de conversion a conduit la notation hexadcimale tre utilise pour noter des nombres initialement quantifi ou destination d'tre quantifi en binaire, l'hexadcimal tant plus compact (quatre fois moins de chiffres) et offrant une meilleur lisibilit pour l'il humain. Un avantage supplmentaire de la base 16 est sa concordance avec l'octet, mot de 8 bits auquel correspond aujourd'hui frquemment un byte, la plus petite unit de stockage adressable. Il est donc commode de noter la valeur d'un octet sur deux chiffres hexadcimaux. La table ASCII a t construite de faon faire commencer les suites de symboles lmentaires (chiffres, lettres minuscule, lettres majuscules) des positions remarquables lorsqu'elles sont exprims en binaire, octal ou hexadcimal. Par exemple, la lettre A correspond ainsi au code hexadcimal 41 (40 + la position de la lettre dans l'alphabet), le chiffre 0 correspond au code hexadcimal 30 (30 + la valeur du chiffre). Les conversions entre le systme dcimal et l'hexadcimal sont moins aises que les conversions entre le systme dcimal et le binaire.
1.3. La reprsentation des nombres ngatifs

Un autre problme de la reprsentation des donnes est celui de la reprsentation des nombres ngatifs. En effet, certaines oprations supposent le traitement d'entiers ngatifs. On peut identifier trois principales faons de reprsenter les nombres ngatifs: 1. reprsentation en valeur absolue et signe 2. reprsentation par le complment restreint appel complment 1 3. reprsentation par le complment vrai appel complment 2.
1.3.1 La reprsentation en valeur absolue et signe

Il s'agit ici d'utiliser un bit pour reprsenter le signe de la valeur reprsenter. Selon que le nombre est positif ou ngatif, le bit d'extrme gauche prendra par convention la valeur 0 ou la valeur 1. Par exemple, sur 4 bits, 1 bit sera rserv au signe et trois bits seront utiliss pour reprsenter les nombres en valeur absolue:

22

Richard Tremblay et Djamal Rebane

systmes de numration

Figure 4: valeur signe valeur

0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

0 1 2 3 4 5 6 7 -0 -1 -2 -3 -4 -5 -6 -7

Comme 3 bits sont utiliss pour reprsenter la valeur absolue, on peut donc reprsenter 23 valeurs absolues diffrentes, soient les valeurs comprises entre 0 et 7. Le bit de signe nous permet d'affecter chacune de ces valeurs un signe + ou -. Autrement dit, n-1 bits servent reprsenter la valeur absolue, ce qui donne une tendue possible allant de

- (2n-1 - 1) (2n-1 - 1)
donc de -7 +7 dans notre exemple.
Inconvnients:

Cette mthode impose que le signe soit trait indpendamment de la valeur. Il faut donc des circuits diffrents pour l'addition et la soustraction. De plus, on obtient deux reprsentations diffrentes pour 0, soit +0 et -0. Pour palier ces inconvnients, il faut un mode de reprsentation qui permet d'utiliser le mme circuit pour effectuer laddition et la soustraction. Comme x - y = x + (-y), il faut que le

23

Richard Tremblay et Djamal Rebane

systmes de numration

signe moins soit trait comme partie intgrante de la valeur ngative. La forme complmente utilise pour reprsenter les nombres ngatifs permet de raliser cet objectif.
1.3.2 La reprsentation sous forme complmente

La reprsentation sous forme complmente repose sur le fait que pour n bits de positions, le nombre de valeurs possibles et distinctes est limit 2n. Afin de mieux introduire cette reprsentation, choisissons l'exemple d'un compteur en base 10, avec disons, deux bits de position qu'on pourrait imaginer comme tant deux roues dentes ayant chacune 10 positions numrotes de 0 9. La plus grande valeur qu'on peut reprsenter avec ce mcanisme est alors 99. Pour faire une addition, par exemple 50 + 20, on se positionne 50 et on avance de 20 positions pour atteindre 70. Jusque-l, tout cela est lmentaire. Maintenant, si on veut effectuer l'addition d'un nombre ngatif, disons 50 + (-20), une manire de faire est de se positionner au dpart 50 et de reculer de 20 positions pour trouver la position 30, le bon rsultat. Cependant, cette mthode suppose que notre mcanisme de roues dentes puisse reculer et avancer au besoin, indiqu par un systme de commande charg de reconnatre le signe de l'opration. Supposons maintenant que l'on veuille raliser une machine plus simple deux roues dentes qui ne pourrait qu'avancer et qui permettrait d'effectuer les additions autant que les soustractions! Comme on va le voir, le concept de complment nous permet de le faire. On sait qu'une fois qu'on a atteint la valeur maximale, dans ce cas-ci 99, le compteur retombe fatalement 00. C'est prcisment le fait qu'il soit impossible de tenir compte de la retenue d'extrme gauche (n'ayant pas de troisime roue) qui nous simplifie la tche: au lieu de reculer de 20 positions, on avancera de 80 positions. On atteindra ainsi la position 30, reprsentant le rsultat souhait ( 50 - 20 = 30)

24

Richard Tremblay et Djamal Rebane

systmes de numration

Figure 5: Compteur 99
Position de dpart du mcanisme

avance de 50 positions

avance de 80 positions

avance de 30 positions

Rsultat

Le nombre 80 est donc la valeur additionner 50 pour obtenir 30 avec notre mcanisme qui ne peut reculer. Si on voulait effectuer l'opration 50 - 37 avec notre mcanisme Quel serait le nombre qu'il faudrait ajouter 50 pour que les roues reprsentent le bon rsultat, soit 13 ? On peut facilement vrifier qu'il s'agit de 63. On remarque que 80 est le complment qu'il faut ajouter 20 pour atteindre 100, le nombre suivant la valeur maximale du compteur (ici 99). De mme que 63 est le complment qu'il faut ajouter 37 pour obtenir la valeur maximale plus 1, soit 100. Nous appellerons cette valeur le complment 100. On voit que l'utilisation du complment nous permet d'effectuer une soustraction en se servant du mme procd mcanique que celui utilis pour une addition. Il reste cependant un problme: comment trouver le complment 100 puisque notre compteur ne peut pas reprsenter la valeur 100 sur ses deux roues dentes reprsentant les deux positions? Ce problme est contourn en soulignant que le complment 100 est le complment 99 auquel on ajoute 1. Pour nos exemples, on trouve le complment 100 de 20 (soit 80) en trouvant le complment 99 (soit 79) et en lui ajoutant 1. De mme, le complment 100 de 37 en calculant le complment 99 de 37, soit 62, auquel il faut ajouter 1 pour obtenir 63. 25

Richard Tremblay et Djamal Rebane

systmes de numration

1.3.3

Reprsentation complmente des nombres binaires

Lorsqu'on a affaire des reprsentations en binaire, le principe de reprsentation des nombres ngatifs sous forme complmente est similaire. Pour n bits de positions, le bit l'extrme gauche (le bit le plus significatif ou de poids le plus lev) servira identifier le signe tandis que les n - 1 autres bits serviront reprsenter la valeur. En fait, si le nombre reprsenter est ngatif, on trouve d'abord le complment restreint de la valeur absolue du nombre, c'est--dire ce qui manque cette valeur pour galer la valeur maximale possible reprsentable sur n bits. On appelle aussi le complment restreint dans le systme binaire le complment 1. Par la suite, on additionne 1 au complment restreint afin d'obtenir le complment vrai appel aussi complment 2 dans le systme binaire.
1.3.3.1 Le complment 1 des nombres binaires

On pourrait dfinir le complment 1 comme ce qu'il faut ajouter une valeur pour obtenir la valeur maximale reprsentable sur le nombre de bits disponibles. C'est le pendant binaire du complment 99 de notre exemple avec un compteur dcimal. Par exemple, en binaire sur 4 bits, 1111 est la valeur maximale qu'on puisse reprsenter. Le complment 1 de 0000 est donc 1111, le complment 1 de 0001 est 1110 et le complment 1 de 1010 est 0101 car: 0001 + 1110 1111 et 1010 + 0101 1111

On constate que le complment 1 d'un nombre binaire se trouve simplement en remplaant les 0 par des 1 et les 1 par des 0. Notons que l'utilisation du complment 1 pour reprsenter les nombres ngatifs nous donne encore une double reprsentation pour le 0. Par exemple sur n bits, +0 est reprsent par une chane de n zros (00...0) et -0 est reprsent par une chane de n un (11...1).
1.3.3.2 Le complment 2

Le complment 2 d'une valeur binaire est ce qu'il faut ajouter cette valeur pour qu'elle atteigne une unit de plus que la valeur maximale qu'on peut reprsenter sur n bits. C'est donc le (complment 1) + 1. Cette technique limine le problme de la double reprsentation du 0 (+0 et -0) comme c'est le cas dans la reprsentation "signe et valeur absolue" ou celle du complment 1. La reprsentation des nombres ngatifs sous forme complmente est largement utilise. Cela s'explique parce que le complment 2 permet d'liminer la double reprsentation de 0 tout en 26

Richard Tremblay et Djamal Rebane

systmes de numration

gardant la facilit de reconnatre le signe par le bit d'extrme gauche. Notons que le complment 2 du complment 2 d'un nombre redonne le nombre. Ainsi, sur 4 bits, avec le signe reprsent sur le bit le plus significatif et 3 bits qui permettent de reprsenter les valeurs, on peut reprsenter les entiers de -8 7, soit un entier ngatif de plus qu'un complment 1 ou en signe plus valeur absolue:
Tableau 4 : Reprsentation des nombres binaire ngatifs
valeur dcimale 7 6 5 4 3 2 1 0 -0 -1 -2 -3 -4 -5 -6 -7 -8 valeur binaire 0111 0110 0101 0100 0011 0010 0001 0000 -0000 -0001 -0010 -0011 -0100 -0101 -0110 -0111 -1000 complment 1 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 --complment 2 0111 0110 0101 0100 0011 0010 0001 0000 0000 1111 1110 1101 1100 1011 1010 1001 1000 signe et valeur absolue 0111 0110 0101 0100 0011 0010 0001 0000 1000 1001 1010 1011 1100 1101 1110 1111 ---

27

Richard Tremblay et Djamal Rebane

systmes de numration

De faon gnrale, sur n bits, le complment 2 des nombres ngatifs permet de reprsenter les nombres compris entre

-2n-1 et 2n-1 - 1
Exemple 13 : Trouver le complment 2 de 010100012.

On trouve d'abord le complment 1 de 01010001 en changeant les 0 en 1 et vice-versa, les 1 en 0, et on lui ajoute 1 ce qui donne:
complment 1 de 01010001 10101110

00000001 10101111

indicateur du signe
Exemple 14 : Quelle est la valeur dcimale de 101010001 s'il s'agit de la reprsentation 2 d'un nombre entier sur 9 bits de position?

Le bit d'extrme gauche de 101010001 indique qu'il s'agit d'un nombre ngatif. Par exemple, si l'ordinateur doit afficher ce nombre l'cran, il comprendra qu'il faudra gnrer un signe moins avant la chane de caractres dcimaux reprsentant le nombre obtenu partir du complment 2 de la chane binaire 101010001. La valeur est donc: Valeur cherche = - (complment 2 de 101010001) = - (010101110 + 1) = - 0101011112 = - 128 + 32 + 8 + 4 + 2 + 1 = - 17510
Exemple 15 : Trouver la reprsentation complment 2 sur 10 bits de position de -27610

Le signe est ngatif. Il indique donc qu'il s'agit du complment 2 de la reprsentation binaire de 276 sur 10 bits de position. On a: Reprsentation cherche = complment 2 de 27610 = complment 2 de 01000101002 = 1011101011 + 1 = 1011101100 28

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 16 : Effectuer 5 - 3 sur 4 bits (1 bit de signe + 3 bits) en utilisant le complment 2 pour les nombres ngatifs:

-3

= complment 2 de 0011 = complment 1 de 0011 + 1 = 1100 + 1 = 1101 0101 + 1101 0010 5 + (-3) 2

donc:

Exemple 17 : Essayons maintenant avec un nombre plus grand que 5, 5 - 7 par exemple, toujours en tant sur 4 bits.

On a: Le complment 2 de -710, est 0111 On a donc: 0101 1001 1110 1000 + 1 = 1001.

soit -2 en complment 2.

En effet, 1 1 1 0 = -(complment 2 de 1 1 1 0) = - (0 0 0 1 + 1) = - 0 0 1 02 = - 210.


1.3.3.3 Dbordement de capacit en complment 2.

Un dbordement de capacit se produit lorsqu'on effectue une opration dont le rsultat dpasse la valeur maximale reprsentable sur n bits. Par exemple, on sait que sur 4 bits, si on utilise le bit le plus significatif pour le signe. Dans la reprsentation en complment 2 pour les nombres ngatifs, les valeurs pouvant tre reprsentes vont de -8 +7. Que se passe-t-il si on additionne 4 + 5?
retenues:0 1 0100 + 0101 1001

4 5 9

29

Richard Tremblay et Djamal Rebane

systmes de numration

Remarque : cette chane binaire en complment 2 ne sera pas interprte en dcimal comme le nombre 9 mais plutt comme

-(complment 2 de 1001) = -7 qui n'est videmment pas le rsultat de 4 + 5 ! Le rsultat obtenu n'est pas 9. La raison est que 9 ne peut tre reprsent sur 4 bits en complment 2. Mais comment l'ordinateur peut-il vrifier que le nombre ngatif obtenu comme rsultat est faux? Cette vrification se fait en comparant les deux retenues d'extrme gauche: si les deux retenues d'extrme gauche sont diffrentes (comme dans notre exemple), cela signifie qu'il y a eu dbordement de capacit et que le rsultat est faux. Par contre, si les retenues d'extrme gauche sont identiques, le rsultat est alors correct.
Exemple 18 : retenues:1 1 7 0111 + 1100 + (-4) 3 0011

Ici, les retenues sont identiques, ce qui nous indique qu'il n'y a pas de dbordement de capacit et que par consquent, le rsultat est exact.
Exemple 19 : retenues:1 0 (-6) 1010 + 1011 + (-5) -11 0101

Dans ce cas ci, les retenues sont diffrentes, ce qu'indique un dbordement de capacit; le rsultat est donc faux.
Exemple 20 : (sur 8 bits) retenues:1 0 (-62) 1100 0010 + (-89) + 1010 0111 -151 0110 1001

Les retenues diffrentes signalent un dbordement de capacit. On peut d'ailleurs vrifier que 151 dpasse la capacit sur 8 bits qui est, pour les nombres ngatifs, de -28-1 , soit -128.

30

Richard Tremblay et Djamal Rebane

systmes de numration

1.3.3.4 Addition et soustraction d'entiers exprimes dans la reprsentation complment 2

Considrez des entiers exprims sur quatre bits.

Unit de remisage de longueur de 4 bits


Valeurs limites en complment 2 -8 7

1ier cas addition sans dbordement


pas de dbordement

0 0 0

RETENUES GALES

3 5 < 7 2

rsultat positif

2ime cas addition avec dbordement

31

Richard Tremblay et Djamal Rebane

systmes de numration

Dbordement

0 4

1 0 1

RETENUES DIFFRENTES

9 > 7

3me cas soustraction sans dbordement et rsultat positif


pas de dbordement

1 0 1

RETENUES GALES

5 1 < 7 -4

1 0
rsultat positif

4me cas soustraction sans dbordement et rsultat ngatif

32

Richard Tremblay et Djamal Rebane

systmes de numration

pas de dbordement

0 0

RETENUES GALES

4 -8 < -1 <

-5

-1
rsultat ngatif

33

Richard Tremblay et Djamal Rebane

systmes de numration

5me cas soustraction sans dbordement et rsultat ngatif


dbordement

1 -4

0 1 1

RETENUES DIFFRENTES

-9 < -7 -5 1 0 1 1

-9

34

Richard Tremblay et Djamal Rebane

systmes de numration

Tableau 5 : Rsum sur la reprsentation des nombres ngatifs

RSUM SUR LA REPRSENTATION DES NOMBRES NGATIFS


3 modes de reprsentation : 1. signe et valeur absolue 2. complment 1 3. complment 2

Rgles gnrales pour le signe (+/- = 0/1) - le signe est toujours reprsent par le bit le plus significatif (extrme gauche) - la reconnaissance d'un signe ngatif commande la forme complmente de la chane considre 1. Signe et valeur absolue: le bit de signe prend la valeur 0 si le nombre est positif et la valeur 1 si le nombre est ngatif. Les n-1 autres bits reprsentent la valeur absolue du nombre. 2. Complment 1: la valeur ngative est remplace par son complment restreint, c'est dire la diffrence entre cette valeur et la valeur maximale. En binaire, le complment 1 se trouve en changeant les 0 par des 1 et vice-versa. 3. Complment 2: la valeur ngative est remplace par son complment

vrai, c'est dire le complment 1 + 1.


Dbordement de capacit: il survient lorsque le rsultat dpasse la valeur maximale que le nombre de bits permet de reprsenter. Rgle de reconnaissance: deux retenues d'extrme gauche diffrentes signalent un dbordement de capacit.

35

Richard Tremblay et Djamal Rebane

systmes de numration

1.4.

La codification des chiffres dcimaux

Il existe dautres formes de codifications permettant de reprsenter directement les nombres dcimaux simplifiant ainsi la conversion dcimal binaire. Ces codage simplifient galement les entre/sortie ( les priphriques utilisant un chiffre/octet:
1.4.1 Chiffres dcimaux cods en binaire (systme BCD : Binary Coded Decimal)

Le code BCD conserve la reprsentation dcimale d'un nombre (centaines, dizaines, units...), mais chaque chiffre de ce nombre est reproduit en binaire. Etant donn que chaque rang dcimal (units, dizaines, centaines...) peut contenir un chiffre de 0 9, chaque rang du code BCD sera reprsent par quatre chiffres binaires (de 0000 1001), donc quatre bits. partir des codes EBCDIC ou ASCII, en enlevant la partie code dans chaque caractre dcimal et en ne gardant que la partie numrique, on obtient pour chaque chiffre du systme dcimal, les reprsentations suivantes (systme appel BCD: Dcimal Cod Binaire) : chaque chiffre d'un nombre est cod sur 4 bits
Figure 6 : Code BCD Chiffre dcimal Code BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

Par exemple, 129 se reprsente dans le systme BCD par la chane binaire 0001 0010 1001 aprs avoir remplac chaque chiffre par son code correspondant, soit le chiffre 1 par 0 0 0 1, le chiffre 2 par 0 0 1 0, et le chiffre 9 par 1 0 0 1. Bien que le BCD gche de l'espace (environ 1/6 de la mmoire disponible est perdue), il permet d'avoir une correspondance immdiate avec les codes de caractres ASCII ou EBCDIC reprsentant les chiffres : il suffit de raliser un OU logique avec 00110000 (48 en base 10) pour l'ASCII, ou 11110000 pour l'EBCDIC.

36

Richard Tremblay et Djamal Rebane

systmes de numration

1.5. 1.5.1

Les oprations arithmtiques en codification BCD L'addition

Exemple 21 : Dcimal 15 + 12 27 BCD 0001 0101 + 0001 0010 0010 0111

Pour ce cas, il y a correspondance entre l'addition dcimale et l'addition des reprsentations BCD de chaque chiffre en binaire. Mais ce n'est pas toujours le cas. Considrons par exemple le nouveau cas:
Exemple 22 : Dcimal 15 + 18 33 BCD 0001 0101 + 0001 1000 0010 1101

2D

L'addition en binaire ne prsente plus une correspondance entre ce qui se passe en dcimal et ce qui se passe en reprsentation BCD binaire comme dans l'exemple prcdent. Ici le retour direct aux caractres (par l'ajout de la partie code chacun des groupes de quatre bits) produit le rsultat 2D. Pourquoi et peut-on remdier cette situation?
La raison est simple: puisque nous disposons de quatre bits pour la reprsentation de chacun des chiffres, nous pouvons reprsenter tous les chiffres hexadcimaux (de 0 9 en plus de A F qui ont pour valeur respective allant de 10 15). Il y a donc six chiffres de trop par rapport au systme dcimal, soit les chiffres hexadcimaux A, B, C, D, E, F ayant pour valeur respective 10, 11, 12, 13, 14 et 15.

Le report aux dizaines est donc retard de six units. Pour produire ce report temps lorsqu'il y a dpassement 9 dans une position dcimale, il faut donc ajouter la valeur 6.Dans l'exemple prcdent (15 + 18) qui donnait (1 + 1)(5 + 8) = 2D, on obtient en corrigeant: 2(D+6) = 2(13+6) = (2+1)(19-16) = 33, le rsultat correspondant en dcimal.

Dans le cas gnral, on effectue donc l'addition en motifs de 4 bits. Si le rsultat dpasse 9 pour l'un ou plusieurs de ces motifs, on leur ajoute 6 pour forcer une retenue et on obtient le rsultat escompt en BCD. Dans l'exemple prcdent, 15 + 18, cette opration se traduit comme suit :

37

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 22 (suite) Dcimal 15 + 18 33 BCD 0001 0101 + 0001 1000 0010 1101 + 0000 0110 0011 0011

2D Chane de correction

33

Exemple 23

Dcimal 75 + 68 143 143

BCD 0111 0101 + 0110 1000 1101 1101 + 0110 0110 0001 0100 0011

DD Chane de correction

Exemple 24 : Dcimal 175 + 328 503 BCD 0001 0111 + 0011 0010 0100 1001 + 0000 0110 0101 0000

503

0101 1000 1101 0110 0011

49D Chane de correction

Dans cet exemple, on remarque qu'il faut tenir compte des retenues chaque position dcimale pour dcider s'il faut corriger avec 6 ou 0, comme c'est le cas pour la deuxime position (7+2) qui hrite d'une retenue de la premire position (5+8 = 3 retenue 1) donnant comme rsultat effectif 7+2+1 = 10 dpassant 9, par consquent qui gnre un facteur de correction 6 en deuxime position dcimale. En fait, nous avons 175+328 = (1+3)(7+2)(5+8) = (4)(9)(13) comme rsultat, donnant aprs correction de 6 de la premire position (4)(9)(13+6) = (4)(9+1)(19-16) = (4)(10)(3), lequel gnre une autre correction de 6 en deuxime position due au dpassement 10 et qui donne comme rsultat final (4)(10+6)(3) = (4+1)(16-16)(3) = 503.
Exemple 25 : Dcimal 175 + 828 1003 BCD 0001 0111 + 1000 0010 1001 1001 + 0110 0110 0001 0000 0000

1003

0101 1000 1101 0110 0011

99D Chane de correction

38

Richard Tremblay et Djamal Rebane

systmes de numration

La chane de correction 0 1 1 0 0 1 1 0 0 1 1 0 ou 666 en hexadcimal est justifie par le dpassement 9 dans chacune des positions dcimales en tenant compte des retenues gnres.
Remarque : Il y a dpassement 9 chaque fois quil y a retenue sur lopration du dernier bit du motif de quatre bits. Exemple 26:

99 99 198

1001 1001 + 1001 _1001___ 0011 0010 2 retenues dernire opration des motif de 4 bits + 0110 0110 Chane de correction 1 1001 1000

1.5.2

La soustraction

Elle s'effectue en additionnant le complment 10 du nombre soustraire sans tenir compte de la retenue l'extrme gauche (dernire retenue).
Exemple 26 : Dcimal 47 - 13 34 est remplac par l'addition 47 de 87 qui est le complment 10 de 13, on a: Dcimal 47 + 87 134 BCD 0100 0111 + 1000 0111 1100 1110 + 0110 0110 0001 0011 0100 retenue ignore

CE Chane de correction

134

qui donne le rsultat escompt 34 en ignorant la dernire retenue.


Exemple 27 : Dcimal 847 - 613 234

puisque 387 est le complment 10 de 613,

39

Richard Tremblay et Djamal Rebane

systmes de numration

Dcimal 847 + 387 +

1234

1000 0011 1011 + 0110 0001 0010

BCD 0100 1000 1100 0110 0011

0111 0111 1110 0110 0100

DCE Chane de correction

retenue ignore qui donne le rsultat escompt 234 en ignorant la dernire retenue.
Remarque : Il est clair que le complment dun nombre doit tre pris par rapport au plus grand des deux nombres.

Exemple 28 : Dcimal 99 1__ 98

Puisque 99 est le complment 10 de 1.


Dcimal 99 + 99 + 198 BCD 1001 1001 1001 1001 1011 0010

retenue ignore +0 1 1 0 0 1 1 0 1001 1000

une retenue au premier motif et un chiffre plus grand que 9 au deuxime motif chanes de correction

Laddition en BCD sign

En fait, la routine dveloppe ci-dessus pour l'addition de nombres BCD dcompacts non signs peut galement tre utilise pour additionner des nombres BCD signs en code complment 10. Si on appelle cette routine avec par exemple les oprandes 0123 et 9995, le rsultat sera 0118 qui peut tre interprt comme tant gal : 0123 - 0005 = 0118
Autres exemples :

0123 + 9880 correspond 0123 - 0120 et renvoie 0003 0123 + 9875 correspond 0123 - 0125 et renvoie 9998 soit -0002 0123 + 9867 correspond 0123 - 0133 et renvoie 9990 soit -0010

40

Richard Tremblay et Djamal Rebane

systmes de numration

La seule diffrence entre l'utilisation de cette routine avec des nombres BCD signs ou non signs rside dans l'interprtation des rsultats. On supposera que dans notre cas cette interprtation se limite un affichage. Notez quil y a lieu de mettre les nombres sur le nombre de digits quon dispose. Par exemple, ci-dessus, nous en avons 4 et nous travaillons sur 4 digits.

Affichage de nombres BCD signs

L'affichage de nombres BCD signs peut tre ralis conformment l'algorithme suivant : si le digit de poids fort est '9', alors afficher '-' complmenter 9 les digits restants ajouter 1 sinon afficher '+' afficher les digits restants
Dpassement de capacit en BCD sign

La dtection d'un ventuel dpassement aprs une addition est relativement aise Si le digit de poids fort est '0' ou '9', alors il n'y a pas de dpassement. Si le digit de poids fort n'est pas '0' ou '9', alors il est significatif, et le signe du rsultat peut tre dduit du signe des oprandes qui sont soit tous les deux positifs, soit tous les deux ngatifs.

1.5.3

La multiplication

La multiplication par 10 d'un nombre reprsent en BCD se ralise par un dcalage de quatre bits de position vers la gauche.
Dcimal BCD

47 X 10 470

Dcalage de 4 bits gauche de 0 1 0 0 0 1 1 1 0100 0111 0000

La multiplication en gnral se fera par une suite d'additions et de multiplications par 10 dpendant du chiffre considr dans le multiplicateur suivie de l'addition des rsultats intermdiaires obtenus chacune des positions dcimales
Exemple 28 :

47 X 32

= 47 X (30 + 2) = [(3 X 47) X 10] + (2 X 47) = [(47 + 47 + 47) X 10] + (47 + 47) 41

Richard Tremblay et Djamal Rebane

systmes de numration

Dcimal 47 + 47

94 + 47

141 X 10 1410 47 + 47

BCD 0100 0111 + 0100 0111 1000 1110 + 0000 0110 1001 0100 + 0100 0111 1101 1011 + 0110 0110 0001 0100 0001

8F Chane de correction

DB Chane de correction Dcalage de 4 bits vers la gauche = [(47 +47 +47) X 10]

0001 0100 0001 0000 0100 0100 1000 0000 1001 0111 0111 1110 0110 0100 0000 0100 0100 0000 0100

+ +

94 1410 + 94 0001 + 0001 + 0000 0001

8F Chane de correction = (47 + 47)

1504
1.5.4

1000 1000 1001 0100 1010 0000 0110 0101 0000

14A4 Chane de correction

La division

La division par 10 d'un nombre reprsent en BCD se ralise par un dcalage de quatre bits de position vers la droite. Par exemple, on a: Dcimal 47 / 10 4.7 BCD Dcalage de 4 bits droite de 0 1 0 0 0 1 1 1 donnant 0100.0111

On indique ce dcalage par le point dcimal. La division entire par 10 d'un nombre reprsent en BCD se ralise en liminant les 4 bits l'extrme gauche. Par exemple, on a:
Dcimal 47 DIV 10 4 BCD limination des 4 bits de gauche de 0 1 0 0 0 1 1 1 donnant 0100

42

Richard Tremblay et Djamal Rebane

systmes de numration

La division en gnral se fera par une suite successive de soustractions au dividende du diviseur, et lorsque le rsultat devient ngatif, de restitution du reste et de multiplication par 10 pour gnrer la dcimale qui suit en rptant l'opration.
Exemple 29 :

47 / 36 donnera: 47 - 36 11 36 -25 + 36 11 X 10

= 11 = -25 = 11 = 110

110 36 74 36 38 36 2 26 -34 + 36 2 X 10

= 74 = 38 = 2 = - 34 = 2 = 20

20 36 -16 + 36 20 * 10

= - 16 = 20 = 200

200 36 174 36 138 36 102 36 66 36 30 36 -6 + 36 30 X 10

= = = = = = = =

174 138 102 66 30 -6 30 360

donnant 1 reste 11 reste ngatif restitution du reste dcalage vers la gauche et gnration de la premire dcimale aprs le point, le rsultat tant 1.0 + .. donnant 1.1 +.. donnant 1.2 + .. donnant 1.3 + .. reste ngatif restitution du reste dcalage vers la gauche et gnration de la deuxime dcimale aprs le point le rsultat tant 1.30 + .. reste ngatif restitution du reste dcalage vers la gauche et gnration de la troisime dcimale aprs le point le rsultat tant 1.300 + .. donnant 1.301 + .. donnant 1.302 + .. donnant 1.303 + .. donnant 1.304 + .. donnant 1.305 + .. reste ngatif restitution du reste dcalage vers la gauche et gnration de la quatrime dcimale aprs le point le rsultat tant 1.3050 + ..

et ainsi de suite.
Autres types de Codifications 1.5.5 Chiffres dcimaux cods en excdent-3

On obtient cette codification en ajoutant 3 (ou 0 0 1 1) au code BCD de chaque caractre numrique.

43

Richard Tremblay et Djamal Rebane

systmes de numration

Chiffre dcimal Code BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

Code excdent-3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

L'avantage majeur de cette reprsentation est de simplifier les oprations impliquant le complment 9 des nombres comme dans la soustraction. En effet, le code excdent-3 du complment 9 d'un chiffre est obtenu directement du code excdent-3 du chiffre en remplaant les 0 par 1 et les 1 par 0, opration trs rapide pour un ordinateur. On a:
Chiffre dcimal Code excdent-3 Code excdent-3 du complment 9

0 1 2 3 4 5 6 7 8 9

0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

1100 1011 1010 1001 1000 0111 0110 0101 0100 0011

Comme exemple, considrons le nombre 356. Sa reprsentation en excdent-3 sera: 0110 1000 1001 .

La reprsentation excdent-3 du complment 9 de 356 sera obtenue en remplaant les 0 par des 1 et les 1 par des 0 dans la chane reprsentant le nombre 356. On obtient: 1001 0111 0110 qui s'interprte en dcimal comme le nombre 643. On a bel et bien 356 + 643 = 999.

1.5.6

Chiffres dcimaux cods 2 dans 5

On obtient cette codification sur 5 bits en partant de 0 0 0 1 1 pour le code de 0 et en dplaant les 1 dans le code vers la gauche, un la fois pour la suite des chiffres dcimaux. On a:

44

Richard Tremblay et Djamal Rebane

systmes de numration

Chiffre dcimal Code BCD

Code 2 dans 5

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

00011 00101 00110 01001 01010 01100 10001 10010 10100 11000

L'avantage que prsente cette codification est de permettre de mieux dtecter les erreurs dans la transmission de nombres, le code de 5 bits de chaque chiffre ne devant avoir que deux bits 1.
1.5.7 Chiffres dcimaux cods biquinaires

Cette codification est sur 7 bits divise en deux rgions. La premire rgion est forme des 2 premiers bits de gauche et la deuxime rgion est forme des 5 autres. Les rgions partent avec 0 1 et 0 0 0 0 1 comme valeur. On obtient le code des autres chiffres dcimaux en dplaant les 1 dans chacune des rgions, une aprs l'autre, vers la gauche, d'une position la fois. On a:
Chiffre dcimal Code BCD Code biquinaire

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

01 01 01 01 01 10 10 10 10 10

00001 00010 00100 01000 10000 00001 00010 00100 01000 10000

L'avantage que prsente cette codification est aussi de permettre de mieux dtecter les erreurs dans la transmission de nombres, le code de 7 bits de chaque chiffre ne devant avoir que deux bits 1, et un seul par rgion.

45

Richard Tremblay et Djamal Rebane

systmes de numration

1.6.

Reprsentation des caractres alphanumriques

Les caractres numriques et alphabtiques des donnes externes, c'est--dire les donnes provenant d'units priphriques ou destines tre transfres vers ces mmes units, sont reprsents l'aide d'une chane de bits selon un code prtabli. Les ordinateurs n'utilisent pas tous les mmes jeux de caractres. Les codes les plus utiliss sont l'ASCII de 7 bits (American Standard Code for Information Interchange) permettant la codification de 128 caractres (27), l'ASCII tendu 8 bits augmentant le nombre de caractres 256 (28) et l'EBCDIC (Extended Binary Coded Decimal Interchange Code) galement 8 bits, un code bas sur le code BCDIC de 7 bits. Il existe galement le jeu de caractres scientifiques CDC qui est un code 6 bits. Sur l'ensemble des possibilits de codage d'un jeu de caractres, un certain nombre sont rserves pour les fonctions de contrle tels le retour de chariot et le saut de ligne. Les autres possibilits reprsentent les caractres comme les lettres majuscules et minuscules, les chiffres et les caractres graphiques. On pourra trouver la fin de ce chapitre la table ascii.
1.7. 1.7.1 Un exemple de reprsentation des donnes : Le VAX 11/780 Les donnes

On retrouve plusieurs faons de reprsenter et de ranger les donnes de base dans la mmoire des ordinateurs, chacune d'elles ayant des consquences sur les diffrents langages de programmation utiliss et ce, tous les niveaux. Les concepteurs du VAX 11/780 ont partag les donnes en trois catgories dpendant de la nature mme de ces donnes et de leur traitement. Il n'y a en fait que des chanes de 0 et 1 l'interne trouvant leur quivalence physique, ce ne sont que les algorithmes de reconnaissance de ces chanes qui changent et qui leur donnent diffrentes interprtations. A titre d'exemple, la chane binaire : 0 1 0 0 0 0 1 0 reprsente le caractre B (dans le code ASCII) pour l'interprteur de caractre, mais cette mme chane reprsentera la valeur 66 (en dcimal) pour l'additionneur. Ces trois groupes de donnes se retrouvent exprimes dans le schma suivant:

DONNES

ARITHMTIQUES

CHAINES DE CARACTERES

CHAINES BINAIRES CHAMPS VARIABLES

Pour chacune de ces catgories, il y a dans l'ordinateur un circuit lectronique spcial permettant au processeur de traiter et d'interprter les diffrentes chanes binaires reues de la mmoire. 46

Richard Tremblay et Djamal Rebane

systmes de numration

L'aiguillage se fait l'aide de signaux et de codes gnrs par l'unit de contrle au moment opportun. Le rsultat des traitements du processeur n'est ni plus ni moins que d'autres chanes binaires retournes la mmoire qui sont leur tour codes dans l'une ou l'autre de ces trois catgories.
1.7.2 Les donnes de nature arithmtique

Les chanes numriques en vue d'un traitement de nature arithmtique se subdivisent en deux groupes: les entiers et les rels, correspondant deux codifications distinctes. Essentiellement, les entiers sont transforms en base 2 et la chane binaire obtenue est range tel quel en mmoire centrale (ou du moins quelques modifications prs). Les rels sont transforms selon la reprsentation dite " point flottant".

DONNES ARITHMTIQUES

ENTIERS (chanes binaires)

RELS ( point flottant)

Exemples 33 ENTIERS 5 -122 0 8691 -273 REELS 3.14159 0.0071 -9.8 0.000000123 782000000000000.

Essentiellement, un rel est identifi par la prsence d'un point dcimal dans la chane de caractres numriques contrairement l'entier qui n'en a pas.

47

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.2.1 Les entiers

Les entiers transforms en chanes binaires base 2 peuvent tre reprsents l'interne de quatre faons sur le VAX, dpendant de la grandeur du nombre. L'unit fondamentale pour la reprsentation est l'octet (ou caractre) form d'un regroupement de 8 bits conscutifs numrots de 0 7 comme montr dans la figure suivante:
OCTET

On appelle:
MOT un regroupement de deux octets ou de 16 bits conscutifs numrots de 0 15, DOUBLE-MOT un regroupement de deux mots ou de 4 octets ou de 32 bits conscutifs numrots de 0 31, QUADRI-MOT un regroupement de deux double-mots ou de 4 mots ou de 8 octets ou de 64 bits conscutifs numrots de 0 63.

On peut schmatiser les quatre units d'information de la faon suivante:


OCTET 7

MOT 15

8 1

7 0

DOUBLE-MOT 15

8 1 3

7 0 2

31

24

23

16

48

Richard Tremblay et Djamal Rebane

systmes de numration

QUADRI-MOT

15
1

7
0

3
5

2
4

7 63 56 55

6 48

Tout nombre entier est reprsent l'interne dans l'un de ces types qui est prcis et choisi par le programmeur ou par le systme d'exploitation. L'unit de rangement de base est l'octet (caractre) et chaque octet est adressable. Selon la dclaration du type, l'ordinateur a accs l'unit d'information prescrit (octet, mot, double-mot, quadri-mot) par son adresse symbolise dans le schma suivant par A.
OCTET 7

0
0

:A
0

MOT 15

:A

DOUBLE-MOT

31
3 2

15
1 0

:A

QUADRI-MOT

49

Richard Tremblay et Djamal Rebane

systmes de numration

31 3 2

15 1 0

:A
32

63 7 6 5 4

Par l`adresse A, lordinateur peut reproduire la chane binaire contenue dans l`unit de rangement correspondant cette adresse pour fin de traitement (lecture en mmoire) ou encore y ranger une chane binaire rsultant d'un traitement (criture en mmoire). Notons qu'une lecture en mmoire prserve l'information lue, contrairement l'criture qui dtruit jamais l'ancien contenu pour faire place au nouveau. L`ordinateur reconnat deux sortes d'entiers: les entiers signs et les non-signs. Autrement dit, il fait la distinction entre deux nombres comme 4 et +4, le second tant sign contrairement au premier. On a donc la situation suivante:

ENTIERS

ENTIERS NON-SIGNS

ENTIERS SIGNS

50

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.2.1.1 Les entiers non-signs

L'entier non-sign, ncessairement positif, est reprsent par une chane binaire numrique de mme valeur dcimale que le nombre.
Exemple 34

On a : 15410 = 9A16 = 1001 10102 log en mmoire dans un octet va donner 7


1 0 0 1 1 0 1

0
0

:A

L'intervalle des valeurs possibles dans une unit de rangement dpend du type de reprsentation dclare, plus elle est longue en bits plus cet intervalle est grand. Pour le : CARACTRE MOT 0 255 ou (28- 1);

0 65535 ou (216- 1); 0 4294967295 ou (232- 1) et 0 18446744073709551615 ou (264- 1).

DOUBLE-MOT QUADRI-MOT

On peut facilement calculer ces valeurs limites d'intervalle. Par exemple pour le caractre, la plus grande valeur binaire qui puisse tre contenue dans l'unit octet est forme uniquement d'tats 1 pour tous les bits de position

7 1 1 1 1 1 1 1 1

:A

donnant comme valeur dcimale 255. On peut comprendre que toute autre valeur suprieure 255 ne pourra jamais tre loge dans un caractre et une telle valeur provoquerait un dbordement de capacit dans la codification caractre. Quant la borne infrieure, elle est obtenue par des tats 0 pour toutes les positions binaires. Il en est de mme pour les calculs des bornes des autres units de rangement d'entiers tels que le mot, le double-mot et le quadri-mot.

51

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.2.1.2 Les entiers signs

Pour l'entier sign, c'est le bit de plus fort poids correspondant celui de plus haut numro qui a la responsabilit du signe. S'il contient 0, alors le nombre est positif. La prsence d'un 1 indique que le nombre est ngatif. De plus, la reprsentation des nombres est celle du complment 2. On sait que cette dernire fournit une chane binaire de mme valeur dcimale pour les entiers positifs avec la prsence d'un 0 au bit de plus fort poids. Pour les ngatifs, les 0 sont changs en 1 et inversement donnant un 1 dans le bit de plus fort poids permettant d'identifier le signe ngatif, c'est le complment 1. Le complment 2 est obtenu par l'addition de 1 au complment 1, ce qui permet d'avoir une reprsentation unique pour la valeur dcimale nulle 0 et de gagner une position du ct ngatif. Ainsi, le bit de plus fort poids est porteur du signe du nombre entier.
Exemple 35 :

Dans un caractre, +69 sera reprsent en mmoire sous la forme suivante: 7


0 1 0 0 0 1 0

0
1

:A

Tandis que -69 par 7


1 0 1 1 1 0 1

0
1

:A

L'tendue des valeurs possibles pour les diffrents types est videmment change pour les nombres signs. Les longueurs en bits des units de rangement tant les mmes, ce qui est donn au ngatifs est perdu pour les positifs. Les situations sont prsentes dans le tableau suivant pour les diffrentes codifications.
TENDUE DES VALEURS ENTIERES TYPE Caractre Mot Double-mot SIGN 128 127 -32768 32767 -231 231 - 1 NON-SIGN 0 255 0 65535 0 232 -1

Ou -2 147 483 648 2 147 483 647 pour le type sign Et 0 4 294 967 295 pour le type non-sign Quadri-mot -263 263- 1 0 264 - 1

52

Richard Tremblay et Djamal Rebane

systmes de numration

Ou Et

-9 223 372 036 854 775 808 9 223 372 036 854 775 807 pour le type sign 0 18 446 744 073 709 551 615 pour le type non-sign

1.7.2.2 Les rels

Dans un nombre rel, par exemple -97.63, on retrouve le signe (+ ou -), la partie entire et la partie fractionnaire, de mme que la base 10 qui est l par dfaut. On a donc quatre caractristiques fondamentales. La reprsentation dite " point flottant " d'un rel utilise aussi quatre paramtres qui pourraient la rigueur tre exprims en termes des prcdents. Ces quatre paramtres servant dcrire un rel sont lis sous la forme suivante: N = s M X Be o s dsigne le signe (le + est souvent par dfaut), M reprsente la mantisse, B donne la base e dsigne l'exposant.

Exemple 36 :

-245.0 = -2.45 X 102 0.0083 = 8.3 X 10-3 791000000000000 = 7.91 X 1014. Notons qu'un nombre donn peut se reprsenter sous plusieurs formes, toutes quivalentes.
Exemple 37 :

-0.0083

= -8.3 X 10-3 = -0.83 X 10-2 = -83. X 10-4

d'o l'expression " point flottant ". Elle est particulirement utile pour l'criture de trs grands nombres comme celle de trs petits.
Exemple 38 :

0.0000000000000000000000123 = 1.23 X 10-23 123000000000000000000000000 = 1.23 X 1023 Le format habituel en base 10 est d'crire la valeur de la mantisse entre 1 et 10. 53

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.3

Reprsentation point flottant

La reprsentation " point flottant" de l'ordinateur utilise la base 2 naturellement. Pour tout nombre rationnel r, on a la forme suivante:

r = (+/-) m X 2e
o et la mantisse m 0,5 m < 1 l'exposant e est reprsent en binaire.

Une mantisse contenue dans ces limites est dite normalise. La mantisse m tant toujours suprieure 0,5, elle dbute donc toujours par un 1 dans sa reprsentation binaire. Les compagnies utilisent ce fait pour introduire ce qu'ils appellent le "bit cach", c'est--dire que le premier 1 dans la mantisse ne trouve pas de reprsentation physique et explicite l'interne mais plutt une reprsentation dite logicielle. L'ordinateur limine automatiquement ce 1 l'criture de la mantisse l'interne et le re-gnre par un circuit lectronique appropri la lecture. On gagne ainsi une position binaire pour la mantisse donc de la prcision car c'est elle qui en est responsable comme on le verra plus loin. Dpendant des compagnies, l'exposant peut tre exprim soit sous la forme du complment 2, soit sous la forme binaire relative. Cette dernire est obtenue en ajoutant systmatiquement l'criture de l'exposant (qui peut tre ngatif) une constante gale la moiti de la valeur maximum de l'unit de rangement rserv l'exposant pour obtenir une valeur crite ncessairement positive. la lecture, cette mme constante est soustraite automatiquement la valeur lue par un circuit lectronique appropri. On dit que l'opration est ralise de faon cble. Quant au signe, une position binaire suffit en suivant une convention. Celle utilise est toujours 0 pour indiquer le + et 1 pour marquer le - .
Exemple 39 : Supposons que l'on dispose d'une unit de rangement de quatre bits pour la mantisse, d'une de trois bits pour l'exposant. 3 2 0 1

MANTISSE

6
EXPOSANT

SIGNE

54

Richard Tremblay et Djamal Rebane

systmes de numration

et que l`on veuille reprsenter dans ces units de rangement le nombre rel dcimal 0.4306640625 . Peut-on le faire et si oui, avec quelle prcision? En premier lieu, il nous faut crire le nombre en binaire. On trouve sans trop de difficult l'galit -0.430664062510 = -0.01101110012 Il faut maintenant normaliser la mantisse. On trouve -0.0110111001 = -0.110111001 X 2-1. La mantisse normalise sera analyse de la faon suivante, s'il y a l'utilisation du concept de bit cach: -0. 1 10111001

bit cach partie mmorise De plus la partie mmorise sera tronque ou arrondie, dpendant du fabricant, quatre bits tant donne la longueur de l'unit de rangement de la mantisse. Supposons que l'on arrondit comme le font la plupart des compagnies d'ordinateurs. Les quatre bits retenus pour mmorisation seront 0.1011 1001, comme 1001 est plus grand que 0,5 on ajoute 1 aux 4 bits que nous gardons qui deviennent 1100, donc 3 2 0 1

1
MANTISSE

Quant l'exposant, il y a deux possibilits de traitement. Pour celle du complment 2 sur trois bits de position, -1 devient 1 1 1 . Pour celle dite " binaire relative ", -1 on ajoute la constante 3 donnant 2 en dcimal ou 0 1 0 en binaire. La constante vaut 3 car sur trois bits, la valeur maximale d'une telle unit de rangement est 1 1 1 en binaire ou 7 en dcimal. La moiti de cette valeur maximale est donc 3 (il s'agit d'une division entire). On a donc les reprsentations suivantes comme possibilits: 6 4 5

EXPOSANT (reprsentation complment 2)

55

Richard Tremblay et Djamal Rebane

systmes de numration

6 0

5 1

4 0

EXPOSANT (reprsentation binaire relative) Pour le signe, il est ngatif donc le bit de position porteur de cette information sera l'tat logique 1 selon la convention. On obtient donc, en regroupant les morceaux, les deux reprsentations suivantes pour le rel 0.4306640625 : La premire utilisant le bit cach pour la mantisse et le complment 2 pour l'exposant, ce qui donne

7 1 signe exposant mantisse

6 1

5 1

4 1

3 1

2 1

1 0

0 0

La deuxime utilisant le bit cach pour la mantisse et le binaire relatif pour l'exposant, on obtient

7 1 signe exposant mantisse

6 0

5 1

4 0

3 1

2 1

1 0

0 0

La non utilisation du bit cach pour la mantisse tout en utilisant l'arrondie nous fournit deux autres versions pour le mme rel, soit: La troisime n'utilisant pas le bit cach pour la mantisse et le complment 2 pour l'exposant qui donne

56

Richard Tremblay et Djamal Rebane

systmes de numration

7 1

6 1

5 1

4 1

3 1

2 1

1 1

0 0

signe exposant mantisse La quatrime n'utilisant pas le bit cach pour la mantisse et le binaire relatif pour l'exposant qui conduit 7 1 signe exposant mantisse
Notons que ne pas utiliser l'arrondie nous donnerait quatre autres reprsentations d'o la multiplicit des reprsentations possibles et des variantes d'un ordinateur l'autre. Notons galement qu' la lecture en mmoire de ce nombre, l'ordinateur dduira comme rel la valeur -0.4375 dans les quatre cas, commettant une erreur absolue de 0.0068359375 . Cette erreur est due la petite dimension de la mantisse. La reprsentation l`interne, comme le montre l'exemple prcdent, exige de subdiviser l'unit de rangement dclar (octet, mot, double-mot, quadri-mot) en trois zones: une premire pour le signe, une seconde pour l'exposant et une troisime pour la mantisse. La longueur en bits de ces zones dpend du fabricant et peut varier d'un ordinateur l'autre, de mme que leur position relative. Le signe ne demande qu'un seul bit et c'est gnralement le bit de plus fort poids qui en a la responsabilit. La convention habituelle est d'y loger un 0 pour les rels positifs ou un 1 pour les ngatifs. Quant la zone rserve pour l'exposant, plus elle est longue en units de bits, plus l'tendue des valeurs potentielles des rels sera grande. La longueur en bits par dfaut de cette zone varie d'un ordinateur l'autre. Elle est de 8 pour la plupart.

6 0

5 1

4 0

3 1

2 1

1 1

0 0

57

Richard Tremblay et Djamal Rebane

systmes de numration

La zone responsable de la prcision est celle de la mantisse. Plus elle peut loger d'units binaires d'information, plus le nombre de chiffres significatifs dans les calculs sera lev. Gnralement, la longueur totale de l'unit d'information pour l'ordinateur est fixe. On parle alors d'un micro-ordinateur 16 bits ou d'un mini-ordinateur 32 bits, etc. Par consquent, la somme des trois longueurs des zones est fixe. Ainsi, l'tendue des valeurs possibles des rels et la prcision sont en opposition. Plus on accorde du pouvoir l'un, plus l'autre s'affaiblit. Autrement dit, les bits donns l'un sont retirs l'autre. Une plus grande tendue offre une moins bonne prcision pour une unit d'information donne et inversement. Le VAX offre ses programmeurs quatre formats comme units d'information, ce sont: le format F (F-flotting) ou simple prcision, le format D (D-flotting) ou double prcision, les formats G et H ou prcision dite "prcisions tendues" On schmatise ces quatre formats de la manire suivante o l'on indique pour chacun les trois zones (s) signe - (e) exposant - (m) mantisse. Le format F: 15 14 7 6 0

s *
31 Le format D: 15 14

e m(1)
24 23

m(0)
16

s *

e m(1) m(2) m(3)

m(0)

63

48

58

Richard Tremblay et Djamal Rebane

systmes de numration

Le format G:
15 14 4 3

s *

e m(1) m(2) m(3)

m(0)

63

48

Le format H:

15

14

s *

e m(0) m(1) m(2) m(3) m(4) m(5) m(6)

127

112

Les flches montrent le sens de lcriture de la mantisse dbutant par l'toile *, et dans l'ordre croissant des indices de m.

59

Richard Tremblay et Djamal Rebane

systmes de numration

Valeurs spciales

Dans la norme IEEE 754, on se rserve quelques valeurs pour lexposent (les valeurs 00000 et les 11111) pour signifier que nous avons affaire des valeurs spciales ne pouvant pas tre reprsentes par le format prcdent utilisant le bit cach.
Zro : En effet, parce que le bit cache suppose une mantisse commenant par 1, la valeur 0 ne peut tre reprsente comme ci-dessus. On rserve donc lexposant compos de bits 0 et la mantisse compose de bits 0 pour reprsenter le nombre. Cela conduit deux reprsentations pour 0 sur 32 bits:

0 | 0000 0000 | 000 0000 0000 0000 0000 0000 (le 0 positif ) 1 | 0000 0000 | 000 0000 0000 0000 0000 0000 (le 0 ngatif ) Les deux reprsentations de 0 doivent donner lieu une galit quand elles sont compares.
Valeur dnormalise: Si les bits de lexposant sont tous des 0, mais la mantisse est diffrente de zro, alors la valeur est dnormalise, ce qui veut dire quil nest plus suppos que la mantisse possde un bit cach. La valeur reprsente donc un nombre (-1)s 0.f 2-126. Pour une double prcision, les nombres dnormaliss sont de la forme (-1)s 0.f 2-1022. Notons que de ce point de vue, le 0 peut tre interprt comme un type spcial de nombres dnormaliss. Infini: Les valeurs +infini et infini sont reprsentes avec un exposant ayant des bits tous 1 et une mantisse de bits tous gaux 0. Le signe fait la distinction entre les +infini et infini Ayant la possibilit de noter linfini comme une valeur spcifique est utile car cela permet aux oprations de continuer mme en cas de situations de dbordement de capacit. Situation derreur (NaN - Not a Number) est utilise pour reprsenter une valeur qui ne reprsente pas un nombre rel. Les nombre NaN sont repsents par le format ayant les bits de lexposant gaux tous et une mantisse diffrente de 0. Il existe deux catgories de NaN: QNaN (Quiet NaN) and SNaN (Signalling NaN).

1. Un QNaN est NaN ayant le bit le plus significatif gal 1. Cette reprsentation est utile pour signifier que le rsultat nest pas dfini mathmatiquement. 2. Un SNaN est un NaN ayant le bit le plus significatif gal 0. Cette situation est utile assigner une valeur non initialise et en signaler un usage prmatur. Dun point de vue smantique, les QNaN's reprsentent les oprations indtermines, tandis que les SNaN's reprsentent celles qui sont invalides.

60

Richard Tremblay et Djamal Rebane

systmes de numration

Ci-dessous un rsum des valeurs spciales

Signe Exposant (e) Mantisse (m)

Valeur

0 0

00..00 00..00 00..01 : 11..10 11..11 11..11

00..00 00..01 : 11..11 XX..XX 00..00 00..01 : 01..11 10..00 : 11..11 00..00 00..01 : 11..11 XX..XX 00..00 00..01 : 01..11 10..00 : 11.11

+0 Rels positifs dnormaliss 0.m 2(-b+1) Rels positifs normaliss 1.m 2(e-b) +infini SNaN

0 0 0

0 1 1

11..11 00..00 00..00 00..01 : 11..10 11..11 11..11

QNaN -0 Rels ngatifs dnormaliss -0.m 2(-b+1) Rels ngatifs normaliss -1.m 2(e-b) -infini SNaN

1 1 1

11..11

QNaN

61

Richard Tremblay et Djamal Rebane

systmes de numration

Oprations sur les valeurs spciales

Les oprations arithmtiques sur les valeurs spciales sont bien dfinies par la norme IEEE. Le tableau ci-dessous en fait rsum .
Operation Rsultat

n infini

infinity infinity infinity nonzero 0 infini + infini 0 0 infini - infini infini infini infini 0 infini infini

NaN NaN NaN NaN

Pour plus de dtails, consulter les adresses suivantes: http://steve.hollasch.net/cgindex/coding/ieeefloat.html http://www-etud.iro.umontreal.ca/~tsikhana/IFT1215-H10/files/ReprEnVirgFlot.pdf

1.7.3.1 Addition et soustraction en virgule flottante.

La premire chose qu'il faut regarder avant de procder l' addition en virgule flottante, c'est de vrifier si les exposants des deux oprandes (chiffres qu'il faut additionner) ont la mme valeur. Procdons l'aide d'exemples.
Exemple : Supposons que l'on veuille faire l'addition des nombres 0.100110 * 24 et 0.110101 * 21. Il faut en premier lieu rendre les exposants gaux. On ralise cela en dcalant de 3 positions binaires le point dcimal du deuxime nombre pour obtenir ainsi 0.000110101 * 24. Dcaler d'une position vers la droite le point dcimal revient diviser la mantisse par 2. Pour conserver la valeur du nombre, chaque dcalage d'une position, on ajoute 1 l'exposant. Aussi, 3 dcalages vers la droite sont compenss par l'addition de 3 l'exposant. Cependant, la mantisse tant tendue sur 6 bits vers la droite, les bits dpassant la 6me position seront ignors. Le deuxime nombre que la machine va considrer pour l'addition deviendra 0.000110 * 24 si on tronque ou 0.000111 * 24 si on arrondit, cela dpendant du fabricant de la machine. Par la suite, l'addition des deux mantisses se fera en donnant comme rsultat la mantisse ainsi tronque:

62

Richard Tremblay et Djamal Rebane

systmes de numration

0.100110 (*24) + 0.000110 (*24) 0.101100 (*24) Ou bien avec la mantisse arrondie: 0.100110 (*24) + 0.000111 (*24) 0.101101 (*24) On ralise ici que le rsultat d'une addition peut tre trs imprcis en virgule flottante. En termes clairs, l'addition demande en dcimale tait : 35/2 + 117/64 qui devrait donner comme rsultat 1237/64 ou 19+21/64 19.32815. Les rsultats obtenus sont: avec la mantisse tronque: 35/2 + 3/2 = 19 avec la mantisse arrondie: 35/2 + 7/4 = 77/4 = 19.25. L'erreur commise est dans le premier cas de 0.32815 et dans le second de 0.07815 . Cette erreur est d'autant plus importante que la diffrence entre les exposants est grande. Notons que l'erreur commise est moins grande pour l'arrondi que pour la troncature. En analyse numrique, on dmontre que pour la somme de n nombres, la prcision est plus grande si on ordonne d'abord les nombres en ordre croissant pour les additionner l'un aprs l'autre en partant du plus petit au plus grand. Cet algorithme rduit au minimum la diffrence entre les exposants chaque addition successive de deux nombres. Donnons un autre exemple encore plus frappant dmontrant que l'addition en virgule flottante n'est pas trs prcise dans les cas o les exposants sont trs diffrents. Effectuons l'addition des deux nombres suivants exprims sur cinq bits: 0.10110 * 23 + 0.10011 * 2-2. On ramne les exposants gaux, c'est--dire le plus petit vers le plus grand, ce qui donne : 0.10110 * 23 + 0.0000010011 * 23. Sur cinq bits, la machine considrera les deux nombres 0.10110 * 23 + 0.00000 * 23 = 0.10110 * 23. La machine dans ce cas est incapable d'additionner le deuxime nombre correctement. Pour contrer cette lacune, on prvoit un registre ayant une capacit plus grande que cinq bits ou, en gnral, celle des registres contenant les oprandes. Gnralement, le registre rsultat est double par rapport celui des oprandes.

63

Richard Tremblay et Djamal Rebane

systmes de numration

Une autre difficult peut survenir dans l'addition en virgule flottante. En effet, qu'arrive-t-il s'il y a une retenue sur le bit d'extrme gauche lors de l'addition des mantisses normalises? N'oublions pas que ce bit de position est rserv dans le registre au signe du nombre. On solutionne ce problme en normalisant la mantisse du rsultat obtenu en prvoyant pour ce cas un dcalage d'une position vers la gauche du point dcimal tout en ajoutant 1 l'exposant.

Exemple :

Considrons l'addition des deux nombres 0.110111 * 23 et 0.1011011 * 22. En ramenant les exposants gaux, on trouve 0.110111 * 23 et 0.01011011 * 23 et l'addition des mantisses donne 1.0011011 * 23, d'o la retenue sur le bit du signe. Une normalisation du rsultat donnera 0.10011011 * 24 ou sur six bits avec arrondi 0.100111 * 24 . Tant qu' la soustraction, la mme procdure s'applique. Notons que la mthode illustre plus haut ne s'applique que pour le cas o les mantisses sont normalises. L'algorithme n'est pas le mme si ces mantisses ne le sont pas. Voyons un dernier exemple o l'on prvoit un double registre pour le rsultat, l'exposant exprim en complment 2 et l'arrondi de la mantisse rsultante.
Exemple : Considrons la configuration suivante pour notre arithmtique en virgule flottante.

15

14

13

12

1 1 10

exposant mantisse signe

Supposons que l'on veuille additionner 27.825 et -4.625. On a: 27.82510 - 4.62510 = 11011.110100110011001...2 = 0.11011110100110011001.. * 25 et = - 100.1012 = - 0.100101 * 23.

64

Richard Tremblay et Djamal Rebane

systmes de numration

On a donc pour les deux oprandes o les mantisses sont normalises et arrondies (il y a perte de prcision dans le cas du premier oprande), les exposants sont en complment 2 sur 7 bits: Oprande 1: Mantisse Exposant Signe = 0 = 0.11011111 = 0000101

Oprande 2: Mantisse = 0.10010100 Exposant = 0000011 Signe = 1. Les registres ont donc comme contenus:
Oprande 1

15

14

13

12

1 1 10

Oprande 2

15

14

13

12

1 1 10

L'ajustement des exposants est par la suite effectu, ce qui donne comme contenus des registres:
Oprande 1

15

14

13

12

1 1 10

Oprande 2

15

14

13

12

1 1 10

L'addition des mantisses est par la suite faite dans un double registre, ce qui donne: 11011111 00100100 10111011

65

Richard Tremblay et Djamal Rebane

systmes de numration

Le double registre du rsultat aura comme contenu:

15

14

13

12

1 1 10

Par la suite, la mantisse du rsultat sera livre sur 8 bits en l'arrondissant, ce qui donne: 0.10111011 et le registre contenant le rsultat final aura comme contenu:

15

14

13

12

1 1 10

tant interprt comme le nombre suivant: 0.10111011 * 25 = 10111.0112 = 23.312510 . Notons l'erreur commise de 0.112510 car la rponse exacte est 23.210 .
1.7.3.2 Multiplication et division en virgule flottante.

Considrons deux nombres N et M crits dans la reprsentation virgule flottante, reprsentation quivalente la forme exponentielle N = C1 * Be1 et M = C2 * Be2. Le produit donnera comme rsultat: M * N = C1 * C2 * B(e1+ e2) et le quotient donnera:
M / N = C1 / C2 * B(e1- e2).

On peut donc rsumer la multiplication par la multiplication des mantisses normalises et par l'addition des exposants. Nous n'avons pas besoin de rendre les exposants gaux comme dans l'addition et la soustraction. Remarquons galement qu'tant donn que les mantisses normalises sont comprises entre 1 et 1/2, leur produit donnera toujours un nombre entre 1 et 1/4; par consquent la multiplication ncessite tout au plus un seul dcalage vers la droite du point dcimal pour rendre la mantisse du rsultat normalise. Tant qu' la division, elle se rsume la division des mantisses et la soustraction des exposants. La mantisse rsultante sera obligatoirement comprise entre 2 et 1/2, ce qui entranera tout au plus un dcalage vers la gauche du point dcimal.

66

Richard Tremblay et Djamal Rebane

systmes de numration

Les algorithmes de multiplication et de division des nombres binaires ont dj t vus. On peut constater que la multiplication et la division sont plus efficaces pour les nombres exprims en virgule flottante en comparaison des oprations addition et soustraction du point de vue vitesse d'opration et prcision.

1.7.4

Les chanes de caractres

Nous savons que toute information fournie ou reue au terminal se prsente sous forme de caractres ou chane de caractres. Par exemple,

*+);=
" ceci est une chane de caractres " 401, rue Principale. sont des chanes de caractres. L'ordinateur utilise pour chacun d'eux, y compris le blanc, un code binaire. Le code ASCII est nettement le plus rpandu que l'on retrouve dans les tables fournies par le fabricant.
Exemples 40

On a pour les caractres suivants la codification correspondante en ASCII:


A 65 41 0100 0001 7 55 37 0011 0111 $ 36 24 0010 0100 ? 63 3F 0011 1111

Caractre Dcimal Hexadcimal Binaire

Le VAX subdivise les chanes en deux groupes: les chanes numriques, les chanes non-numriques.

Exemple 41 :

252 rue De L'Esprance tandis que +814

est une chane non-numrique,

est une chane numrique.

67

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.4.1 Les chanes non-numriques

Le paramtre important d'une chane non numrique est le nombre de caractres de la chane. A l'interne, elle se retrouve dans une pile o chaque caractre occupe une unit de rangement de 8 bits (octet) cod en ASCII rfre par une adresse au caractre de tte.

Exemple 42

La chane G7H2B1 donne la reprsentation suivante en mmoire code en ASCII Reprsentation hexadcimale 7 G 7 H 2 B 1 Reprsentation binaire 7 0 0 0 0 0 0 6 1 0 1 0 1 0 5 0 1 0 1 0 1 4 0 1 0 1 0 1 3 0 0 1 0 0 0 2 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 6 4 3 4 3 4 3 5 4 3 2 7 7 8 2 2 1 1 0

G 7 H 2 B 1

1.7.5

Les chanes numriques

Il y a sur le VAX, trois faons de les coder: 1. codification caractres spars, 2. codification caractres compacts et 3. codification caractres tronqus.

68

Richard Tremblay et Djamal Rebane

systmes de numration

CHANES DE CARACTRES NUMRIQUES

CARACTRE SPAR

CARACTRE COMPACT

CARACTRE TRONQUS

Voyons ces diffrentes codifications. Nous verrons que la dernire, celle caractres tronqus, permet une conomie substantielle en mmoire interne.

1.7.5.1.1 La codification caractres spars.

Cette codification est similaire en tout point la codification des chanes de caractres non numriques. C'est--dire que les caractres sont rangs dans une pile, un caractre par octet, un aprs lautre, et cod en ASCII.
Exemple 43 : La chane numrique +/-814 donnera linterne :

+ 2B +/8 1 4

2D 2 3 3 3

8 38

1 31

4 34 B/D 8 1 4 :A N=4

+/8 1 4

0010 0011 0011 0011

1011/1101 1000 0001 0100

:A N=4

69

Richard Tremblay et Djamal Rebane

systmes de numration

Le nombre d'units de rangement de 8 bits est gal au nombre de caractres de la chane numrique.
1.7.5.1.2 La codification caractres compacts

La faon de ranger l'information est de mmoriser les caractres cods en ASCII un par octet et en pile l'exception du dernier de la chane qui absorbe le signe. On y trouve un 7 (ou 0111 en binaire) si le nombre mmoriser est ngatif, ou un 3 (ou 0011) si s'agit d'un nombre positif. On sauve ainsi un emplacement de 8 bits par nombre mmoriser. Par exemple, la chane +/-814 donne linterne:
Exemple 44 :

8 1 +/-4

3 3 3/7

8 1 4

:A N=3

8 1 +/-4

0011 0011 0011/0111

1000 0001 0100

:A N=3

1.7.5.1.3 La codification caractres tronqus

Dans le code ASCII, les caractres numriques sont tels que la premire partie du code, c'est-dire les quatre premiers bits, est toujours 3 (ou 0011 en binaire) tandis que la deuxime partie transcrit la valeur dcimale du caractre en binaire. Notons que l'on indique le code ASCII d'un caractre le plus souvent dans la notation hexadcimale, ou encore dans la notation dcimale correspondant l'ordre du caractre dans la liste de l'ensemble des codes ASCII. Pour les caractres numriques, on a explicitement: Aussi, les fabricants ont exploit ce fait en crant des circuits lectroniques permettant d'liminer automatiquement la premire partie du code des caractres numriques et de ne ranger en mmoire que la seconde partie du code. On a ainsi une importante conomie d'espace car cette mthode permet de ranger deux caractres numriques par unit de rangement de 8 bits. Tant qu'au signe, c'est la deuxime partie du dernier octet qui en a la responsabilit o on y trouve un C (ou 1100 en binaire) ou un D (ou 1101) dpendant qu'il s'agit d'un nombre positif ou ngatif.

70

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 45 : La chane +/-814 ne prendra que deux emplacements de 8 bits comme illustr dans la figure suivante:

8 4

1 C/D

:A N=2

1000 0100

0001 1100/1101

:A N=2

Notons que l'ordinateur est oblig de gnrer un zro au dbut d'une chane numrique qui contient un nombre impair de caractres afin d'assurer la reprsentation du signe l'endroit prescrit plus haut, ce qu'il fait automatiquement l'aide d'un circuit lectronique appropri.
Exemple 46 : + 1372146

1 7 1 6 0001 0111 0001 0110

3 2 4 C 0011 0010 0100 1100

:A N=4

:A N=4

71

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 47 : + 137214

0 3 2 4 0000 0011 0010 0100

1 7 1 C 0001 0111 0001 1100

:A N=4

:A N=4

Dans le second exemple, l'ordinateur considre la chane numrique +0137214 au lieu de +137214 pour rendre le nombre de caractres pair. Ceci a pour effet d'assurer qu'un chiffre soit retenu dans la premire partie du dernier octet et que l'indication du signe soit loge dans la deuxime partie du mme octet. Le zro se trouve log dans la premire partie du premier octet. Cette technique de rangement, vu son efficacit, est utilise constamment par l'ordinateur transformant l'aide d'un circuit lectronique appropri les chanes purement numriques aussitt identifies.

72

Richard Tremblay et Djamal Rebane

systmes de numration

8 1 4

2 3 3 3

D 8 1 4

:A N=4

8 1 - 4

3 3 7

8 1 4

:A N=3

CIRCUIT DE TRANSFORMATION

8 1

8 4

1 D

:A N=2

73

Richard Tremblay et Djamal Rebane

systmes de numration

1.7.6

Les chanes binaires champs variables

C'est une technique de rangement des chanes binaires qui permet de la loger n'importe quel endroit dans la mmoire. De plus la longueur de la chane en bits peut tre comprise entre 0 et 32. Une telle souplesse de localisation exige trois paramtres: 1. une adresse de rfrence A qui permettra de localiser par rapport elle le dbut de l'unit de rangement, 2. une distance P en bits prcisant l'endroit du dbut de l'unit de rangement par rapport l'octet d'adresse A et 3. une longueur L en bits de l'unit de rangement prcisant qu'il s'agit des L bits suivant l'endroit indiqu par le paramtre P. Le schma suivant montre la position des valeurs positives et ngatives du paramtre P par rapport l'adresse A.

-25 M M O I R E

-32

-17 -18 -19 -20 -21 -22 -23 -24 -9 -1 7 15 23 31 39 -10 -11 -12 -13 -14 -15 -16 -2 6 14 22 30 38 -3 5 13 21 29 37 -4 4 12 20 28 36 -5 3 11 19 27 35 -6 2 10 18 26 34 -7 1 9 17 25 -8 0 8 16 24 :A

33 32

74

Richard Tremblay et Djamal Rebane

systmes de numration

Le schma suivant montre l'utilit de ces trois paramtres A, P et L dans un cas particulier.

M M O I R E

: A P = 36 L=9

1 9 8 7 6 5

L'tendue des valeurs possibles pour le paramtre P est de - 231 231 - 1 . ou -2 147 483 648 2 147 483 647 Celle de L va de 0 32 bits.

75

Richard Tremblay et Djamal Rebane

systmes de numration

Exemple 48

Les exemples suivants montrent le cas o P est ngatif et le cas o L est gal 1 . On peut donc aller lire ou crire dans un bit isol, l'accs tant possible par cette technique. Le cas o P < 0:

M M O I R E

1 8 7 6 5 4 P = -35 L = 13

11 10 9

13 12

:
Le cas o L = 1 :

M M O I R E

: A = 19 P 1 L=1

Cette technique de localisation est largement utilise par le systme d'exploitation. 76

Richard Tremblay et Djamal Rebane

systmes de numration

1.8.

Les jeux de caractres

Tous les ordinateurs n'utilisent pas le mme jeu de caractres, mais ASCII (American Standard Code for Information Interchange) est le plus courant. Ce jeu de caractres est un code 7 bits. Sur les 128 possibilits, 33 sont rserves pour des fonctions de contrle, tel le retour de chariot et le saut de ligne. Malheureusement, peu de ces caractres suivants ont conserv leur signification originale. Les 95 caractres restants sont utiliss pour reprsenter les lettres majuscules et minuscules, les chiffres et les caractres graphiques. Une valeur numrique destine tre utilise l'intrieur de l'ordinateur est assigne chacun de ces caractres. Entre autres, c'est cette valeur que l'on obtient quand on utilise la fonction Pascal standard ORD. Les avantages de l'ASCII sont le fait qu'il soit standard, qu'il soit largement rpandu et que les lettres, tant majuscules que minuscules, soient contigus. L'EBCDIC (Extended Binary Coded Decimal Interchange Code) est un autre jeu de caractres. Il s'agit d'un code 8 bits bas sur le code 7 bits BCDIC. Il est utilis sur les gros ordinateurs IBM. Un des dsavantages de l'EBCDIC est que certains caractres peu frquemment utiliss viennent s'intercaler au beau milieu des lettres majuscules et des lettres minuscules. Il existe encore d'autres jeux de caractres. Mentionnons seulement le jeu de caractres scientifiques de CDC qui est un code 6 bits.

Table ASCII STANDARD

Elle comporte 128 codes. Les 32 premiers codes ASCII (000 031) sont des codes de commande et forment un ensemble particulier de caractres non imprimables. Le second bloc de 32 codes ASCII (032 063) comportent de divers symboles de ponctuation, des caractres spciaux, et les symboles numriques. Le troisime groupe de 32 codes ASCII (064 095)est affect aux lettres alphabtiques majuscules et six symboles spciaux. Le quatrime bloc de 32 codes (096 127) est rserv aux symboles alphabtiques minuscules, cinq symboles spciaux supplmentaires et un code de commande (DEL / effacer).

77

Richard Tremblay et Djamal Rebane

systmes de numration

Table ascii standard HEX DEC CHR CTRL 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US ^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O ^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z HEX DEC CHR 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 SP ! " # $ % & ' ( ) * + , HEX DEC CHR 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ HEX DEC CHR 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7 96 97 98 99 100 101 102 103 104 105 106 107 108 109 100 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | }

. / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

78

Richard Tremblay et Djamal Rebane

systmes de numration

Signification des codes de contrle

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN EOB CAN EM SUB ESC IFS IGS IRS IUS DEL

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

Nul Dbut d'en-tte Dbut de texte Fin de texte Fin de transmission Demande Accus de rception Sonnerie Retour arrire Tabulation horizontale Interligne Tabulation verticale Avance papier Retour de chariot Hors-code En-code chappement transmission Commande d'appareil auxiliaire 1 Commande d'appareil auxiliaire 2 Commande d'appareil auxiliaire 3 Commande d'appareil auxiliaire 4 Accus de rception ngatif Synchronisation au repos Fin de bloc de transmission Annulation Fin de support Substitution chappement Sparateur de fichier Sparateur de groupe Sparateur d'article Sparateur de sous-article Oblitration

79