Nature et utilisation des variables

Les textes dans la mémoire de l'ordinateur

L'ordinateur n'est capable de stocker que des valeurs numériques 0 ou 1. En groupant des 0 et des 1, il est possible de coder des nombres entiers ou réels de toutes sortes.

Mais cela ne nous dit pas comment l'ordinateur est capable de stocker des textes.

Les caractères

Codes secretsLa mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour stocker directement les caractères.

Il a donc fallu trouver une nouvelle convention qui permette de stocker ces caractères.

Nous avons tous joué à écrire des messages secrets dans lesquels les lettres des mots sont remplacés par des nombres. C'est le même principe qui a été utilisé.

La convention ASCII

ASCII... A skis!! Ha ha, très drôle...Chaque caractère possède un équivalent en code numérique: c'est le code ASCII (American Standard Code for Information Interchange - traduisez " Code Americain Standard pour l'Echange d'Informations ", prononcez "A ski").

Dans la convention ASCII, les caractères dont le code est inférieur à 32 sont particuliers ; on y trouve, par exemple, Escape -27, Retour Arrière (back space)-8, etc. Les codes à partir de 32 (SP pour "space") représentent les différents signes utilisables.

Ils sont présentés dans le tableau ci-dessous.

code 0 1 2 3 4 5 6 7 8 9
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT
10 LF VT NP CR SO SI DLE DC1 DC2 DC3
20 DC4 NAK SYN ETB CAN EM SUB ESC FS GS
30 RS US SP ! " # $ % & '
40 ( ) * + , - . / 0 1
50 2 3 4 5 6 7 8 9 : ;
60 < = > ? @ A B C D E
70 F G H I J K L M N O
80 P Q R S T U V W X Y
90 Z [ \ ] ^ _ ` a b c
100 d e f G h i j k l m
110 n o p q r s t u v w
120 x y z { | } ~ DEL    

Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127). Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas les caractères accentués, ni de caractères spécifiques à une autre langue (ñ, Å, ø,...). Pour coder ce type de caractères, il faut recourir à un autre encodage.

Le code ASCII a donc été étendu à 8 bits (un octet) pour pouvoir coder plus de caractères (on parle d'ailleurs de code ASCII étendu...).

Ce code attribue les codes 128 à 255 (donc codées sur 8 bits, soit 1 octet) à des signes et lettres supplémentaires, dont les caractères accentués du français et d'autres langues.

Tiens, une petite question en passant. Les chinois ne seraient-ils pas un peu à l'étroit avec 256 caractères possibles ?

C'est effectivement un gros problème: la convention ASCII n'est adaptée qu'à l'alphabet occidental. Il a fallu trouver autre chose pour ceux, et ils sont nombreux, qui emploient d'autres systèmes.

La convention Unicode

Le code ASCII (même étendu) est totalement insuffisant pour coder tous les caractères possibles, dans toutes les langues possibles.

Il faut donc se résoudre à utiliser plus d'un octet pour coder un caractère.

La convention Unicode utilise 8 bits (reprenant donc l'ASCII étendu avec 256 caractères), 16 bits (2 octets et donc 65535 caractères codés), voire 32 bits (4 octets et donc plus de 4 milliards de caractères) dans chacune des trois variantes UTF (Unicode Transformation Format ): UTF-8, UTF-16 et UTF-32.

Et donc, il va falloir apprendre par coeur les 4 milliards de codes de l'UTF-32 ? J'ai comme un doute, là.

Pas de panique. La convention UTF-8 nous suffira dans la plupart des applications qui ne doivent pas être prévues pour les régions du monde utilisant d'autres systèmes d'écriture.
En plus, l'intérêt de retenir les 256 codes par coeur est plus que limité.

Bon, je suis un peu rassuré. N'empêche, jusque là, je comprends donc comment l'ordinateur peut stocker une lettre. Mais si je voulais lui faire avaler l'intégrale d'Honoré de Balzac ?

Très simple : pour un ordinateur, un texte sera simplement considéré comme une suite de caractères. On dira encore une chaîne de caractères.

Les chaînes de caractères

Pour stocker des mots ou des phrases dans la mémoire de l'ordinateur, il suffit d'assembler un certain nombre de caractères.

On appelle généralement chaîne de caractères un ensemble de caractères qui constitue des mots ou des phrases.

U N   O C T E T
85 78 32 79 67 84 69 84

Une chaîne de caractères est donc formée d'un ensemble d'octets accolés. Chaque octet représente un caractère.

Une chaîne de caractères formée de 10 signes occupera donc 10 octets en mémoire centrale.

On imagine bien toute la poésie qui se dégage d'un texte codé en UTF-8.

On utilise rarement l'UTF-32 pour écrire un texte rédigé en français, parce que :
ce n'est pas nécessaire
cette convention ne prévoit pas les caractères accentués
cette convention ne convient pas au français
Comment écrit-on " UNE POESIE " en ASCII ?
85 / 78 / 69 / 80 / 79 / 69 / 83 / 73 / 69
85 / 78 / 69 / 32 / 80 / 79 / 69 / 83 / 73 / 69
85 / 110 / 101 / 32 / 112 / 111 / 101 / 115 / 105 / 101

Quand tu es capable d'expliquer pourquoi et comment des textes peuvent être codés dans la mémoire de l'ordinateur, passe à la page suivante.


Dernière modification 18/08/2016 Test dans /info ...