• Aucun résultat trouvé

Repr´esentation des caract`eres

Dans le document ARCHITECTUREDES ORDINATEURS (Page 40-43)

2.3.1 Repr´ esentation sur 8 bits

Traditionnellement les caract`eres (lettres, chiffres, symboles de ponctuation)

´etaientcod´es sur un octet. Les codes le plus couramment utilis´es sont le code A.S.C.I.I. (American Standard Code for Information Interchange) qui utilise 7 bits, le huiti`eme servant de contrˆole de parit´e, et le codeE.B.C.D.I.C. (Ex-tended Binary Coded Decimal Interchange Code) sur 8 bits.

Comme on le verra pour le bit de parit´e des codes conditions, la parit´e est celle dunombre de bits `a1dans le code du caract`ere. On dira qu’on utilise une parit´epaire (resp. impaire) lorsque le bit de parit´e estfix´e de telle sorte que le nombre de bits `a 1 dans le caract`ere cod´e soit pair (resp. impair). Ainsi, pour le code 7 bits 011 0100 avec parit´e paire, le bit de poids fort doit ˆetre ´egal `a 1 pour rendre pair le nombre de 1 dans le codefinal.

Le tableau 2.8 d´efinit le codage ASCII. Pour obtenir le code ASCII hexad´ecimal d’un caract`ere, il suffit de lire le chiffre de poids fort sur la ligne du haut, et celui de poids faible dans la colonne de gauche. Ainsi le caract`ere

<G>a pour code 4716.

La table2.9donne les codes propres au jeu de caract`eres nord-am´ericain.

Certains codes sont r´eserv´es pour des usages particuliers : gestion de l’affichage, gestion deflux de donn´ees pour une communication entre machines, etc. Dans le code ASCII, les codes 0 `a 1F16 sont r´eserv´es `a cet usage. Ainsi le caract`ere de code 7, not´eBEL, correspond `a la sonnerie du terminal. Ces

Poids Poids fort

faible ↓ 0 1 2 3 4 5 6 7

0 NUL DLE 0 △ P ‘ p

1 SOH DC1 ! 1 A Q a q

2 STX DC2 △ 2 B R b r

3 ETX DC3 △ 3 C S c s

4 EOT DC4 △ 4 D T d t

5 ENQ NAK % 5 E U e u

6 ACK SYN & 6 F V f v

7 BEL ETB △ 7 G W g w

8 BS CAN ( 8 H X h x

9 HT EM ) 9 I Y i y

A LF SUB * : J Z j z

B VT ESC + ; K △ k △

C FF FS , < L △ l △

D CR GS - = M △ m △

E SO RS . > N △ n ˜

F SI US / ? O ˙ o DEL

△: caract`ere non d´efini dans la norme (choix nationaux) Table 2.8: Table ASCII.

codes sont en g´en´eral directement accessibles sur le clavier par la frappe si-multan´ee des touches<CONTROL>et d’une lettre. Ainsi,<CONTROL>et

<A>donne le code 1,<CONTROL>et<G>donne le code 7 qui correspond au “beep”, etc. Ces codes sont aussi utilisables `a partir d’un programme ´ecrit en langage ´evolu´e. Il suffit simplement d’en faire “l’impression” de la mˆeme fa¸con que pour un caract`ere alphanum´erique.

Les caract`eres de contrˆole ´enum´er´es sont interpr´etables uniquement par des terminaux dits detype ASCII. Le tableau2.10donne quelques-uns de ces codes de contrˆole.

La grande majorit´e de ces terminaux sont dot´es de possibilit´es suppl´ementaires tant en mode texte soulignement, inversion vid´eo, couleur. . . -qu’en mode graphique - trac´e de segments, d’arcs de cercle, remplissage de surfaces. . . Ils sont commandables `a l’aide de s´equences d’´echappement (ES-CAPE sequences). Ces derni`eres sont constitu´ees d’une suite de caract`eres alphanum´eriques pr´ec´ed´ee du caract`ere ESC de code hexad´ecimal 1B16. Exemple 2.8 La chaˆıne de caract`eres Ordinateur suivie d’un passage `a la ligne sera cod´ee avec la suite d’octets :

4F,72,64,69,6E,61,74,65,75,72,0D,0A (hexad´ecimal)

Poids Poids fort

faible↓ 0 1 2 3 4 5 6 7

0 NUL DLE 0 @ P ‘ p

... · · ·

2 STX DC2 ” 2 B R b r

3 ETX DC3 # 3 C S c s

4 EOT DC4 $ 4 D T d t

... · · ·

7 BEL ETB ’ 7 G W g w

... · · ·

B VT ESC + ; K [ k –

C FF FS , < L “ l —

D CR GS - = M ] m ˝

E SO RS . > N ˆ n ˜

F SI US / ? O ˙ o DEL

Table 2.9: Particularit´es du code ASCII.

code symbole signification

04 <EOT> Fin de communication 07 <BEL> Sonnerie

0C <FF> Passage `a la page suivante (provoque un effacement d’´ecran sur un terminal

´ecran)

0E <SO> Permet l’obtention d’un compl´ement au jeu de caract`eres existant

1B <ESC> Caract`ere d’´echappement Table 2.10: Quelques caract`eres de contrˆole.

On notera que le passage `a la ligne est cod´e avec deux caract`eres : 0D qui est leretour chariot (Carriage Return) ou retour en d´ebut de ligne, et 0A qui est le passage `a la ligne suivante (Line Feed). Lesfichiers textes cr´ees par l’´editeur de MS-DOS, syst`eme d’exploitation “historique” de Microsoft Corp., ont les fins de ligne cod´ees de cette fa¸con. En effet, certains terminaux contemporains de la naissance des “PC” ´etaient ´electrom´ecaniques et n´ecessitaient ces deux commandes pour envoyer le chariot en d´ebut de ligne et activer la rotation du tambour de l’imprimante.

Exemple 2.9 Le tableau2.11donne des exemples de repr´esentations internes,

o`u les entiers et r´eels sont cod´es sur 32 bits, en compl´ement `a deux pour les en-tiers et en formatIEEE-754pour les repr´esentationsflottantes. Les caract`eres sont cod´es selon un formatASCII:

Information `a Nombre de bits Repr´esentation interne

coder occup´es (hexad´ecimale)

Chiffre 1 en entier 32 00000001

Chiffre -1 en entier 32 FFFFFFFF

Chiffre 1 enflottant 32 exp. 7F, mantisse 0, signe 0 Chiffre -1 enflottant 32 exp. 7F, mantisse 0, signe 1

Caract`ere 1 8 31

Caract`eres +1 16 (2 caract`eres) 2B 31 Caract`eres -1 16 (2 caract`eres) 2D 31 Caract`eres 1.0 24 (3 caract`eres) 31 2E 30 Caract`eres -1.0 32 (4 caract`eres) 2D 31 2E 30

Table 2.11: Exemples de repr´esentations internes

2.3.2 Repr´ esentations modernes

Le codage des caract`eres sur 8 bits tel qu’il ´etait pratiqu´e n’offre pas la pos-sibilit´e de coder tous les caract`eres que l’on peut rencontrer en pratique. Une solution a ´et´e d’introduire la notion de pages de codes nationales. Mais l`a encore cette solution ne s’est pas av´er´ee satisfaisante. Aujourd’hui le consor-tiumUnicode1a d´evelopp´e une norme qui couvre tous les autres syst`emes ISO existants. Cette norme offre plus qu’un simple de codage. Elle “nomme” les caract`eres, d´ecrit des mod`eles de traitements de texte qu’on peut leur appliquer et des relations s´emantiques qui les lient.

Dans le document ARCHITECTUREDES ORDINATEURS (Page 40-43)