mercredi 15 avril 2015

Jouons aux espions... (ou comment coder un texte pour que l'ordinateur le comprenne)

Si l'ordinateur ne comprend que les 0 et les 1, comment je fais pour écrire des lettres?
Il va falloir transformer toutes les lettres de l'alphabet en 0 et 1... C'est ce qu'on appelle coder une information. C'est exactement ce que ferait un espion pour envoyer un message secret à son QG!

Alors jouons les espions, et essayons de coder l'alphabet!

On sait déjà coder les chiffres, il suffit de reprendre leur équivalent en binaire, ça donne donc : 
0  -->  0
1  --> 1
2 --> 10
3 --> 11
4 -->  100
5  -->  101
6  -->  110
7 -->  111
8 -->  1000
9 --> 1001

On va donc tester ce code, essayons d'écrire 13 avec notre nouveau code :
On remplace le 1 par son code donc 1, et 3 par son code 11, ça donne :  111
                                                   13
                                                   /  \
                                                  1  11

Le problème c'est que 111 est le code de 7! Alors comment l'ordinateur va-t-il faire la différence entre 7 et 13 si c'est le même code...

Il va donc falloir modifier un tout petit peu notre code, pour cela notre espion a eu l'idée de coder chaque chiffres sur 4 chiffres. Il a rajouté des 0 avant notre code pour que chaque code soit fait de 4 chiffres. Ça nous donne donc : 

0  -->  0000
1  -->  0001
2 -->   0010
3 -->   0011
4 -->   0100
5  -->  0101
6  -->  0110
7 -->   0111
8 -->   1000
9 -->   1001

Réessayons d'écrire 13 :

                                                   13
                                                   /  \
                                            0001   0011   

Pour écrire 13 avec notre nouveau code, il faut écrire : 00010011. Ce qui cette fois-ci est bien différent de 7 qui s'écrit 0111.

Ok essayons d'autres nombres : 

32  ça donne 0011  et  0010  donc 00110010

                                                   32
                                                   /  \
                                            0011   0010

64  ça donne 0110  et  0100  donc 01100100

                                                   64
                                                   /  \
                                            0110   0100
100 ça donne 0001 puis 0000 puis 0000 donc 000100000000

                                                   100
                                                   /  |   \
                                                 /    |     \
                                         0001  0000  0000


Et ainsi de suite. Avec notre nouveau code, on peut écrire tous les nombres qu'on veut en utilisant uniquement les chiffres 0 à 9 en binaire. On peut maintenant utiliser tous les autres nombres en binaires pour coder les lettres de l'alphabet.

Rajoutons les lettres de l'alphabet dans notre code, pour cela, on va continuer notre liste :


0  -->  0000
1  -->  0001
2 -->   0010
3 -->   0011
4 -->   0100
5  -->  0101
6  -->  0110
7 -->   0111
8 -->   1000
9 -->   1001
A  -->  1010
B  -->  1011
C -->   1100
D -->   1101
E -->   1110
F  -->  1111
G  -->  10000
H  -->  10001
I -->   10010
J -->   10011
K -->   10100
L  -->  10101
M  -->  10110
N -->   10111
O -->   11000
P -->   11001
Q  -->  11010
R  -->  11011
S -->   11100
T -->   11101
U -->   11110
V -->  11111
W  -->  100000
X  -->  100001
Y  -->  100010
Z  -->  100011

Testons notre code, on va écrire le code de la porte d'entrée : 4A30
Ca donne : 1000 puis 1010 puis 0011 puis 0000   donc : 1000101000110000

Sauf que l'ordinateur lui comprend : YZ0 ... Oups, on a oublié de mettre des 0 en plus pour que tous les codes soient de la même longueur. Reprenons, notre code :

0  -->  000000
1  -->  000001
2 -->   000010
3 -->   000011
4 -->   000100
5  -->  000101
6  -->  000110
7 -->   000111
8 -->   001000
9 -->   001001
A  -->  001010
B  -->  001011
C -->   001100
D -->   001101
E -->   001110
F  -->  001111
G  -->  010000
H  -->  010001
I -->   010010
J -->   010011
K -->   010100
L  -->  010101
M  -->  010110
N -->   010111
O -->   011000
P -->   011001
Q  -->  011010
R  -->  011011
S -->   011100
T -->   011101
U -->   011110
V -->  011111
W  -->  100000
X  -->  100001
Y  -->  100010
Z  -->  100011

Nous avons maintenant des codes à 6 chiffres.

Écrivons un prénom, par exemple Arthur. On remplace donc chaque lettre par son code :

A             R             T            H            U               R
001010    011011   011101   010001   011110     011011

et ça donne :  001010011011011101010001011110011011

Pas très lisible pour un humain, mais l'ordinateur a tout compris!

Et petite devinette, qu'est-ce que j'ai écrit ?

001011  011011  001010  011111  011000

Sur nos 6 caractères, nous avons réussi à caser tous les chiffres et toutes les majuscules de l'alphabet. Mais sur le clavier, il y a bien d'autres caractères : les minuscules, la ponctuation, les touches d'action (entrée, retour arrière, inser, maj, ctrl...) Il faut donc les caser dans notre code. On pourrait continuer l'exercice mais je pense que vous avez compris.

Par contre, dans notre code à 6 caractères, ou si on prend le terme informatique à 6 bits, il ne nous reste plus que 28 codes libres... Il va donc falloir rajouter des bits devant notre code pour caser encore plus de caractères.

Un des premiers codes inventé par les espions informaticiens contient 8 bits. C'est le code ASCII. Il traduit toutes les lettres latines et les principales touches de notre clavier en 8 bits. Ce code a été largement utilisé à l'échelle internationale par les informaticiens. C'est d'ailleurs de là que vient le mot octet. Un octet est un groupe de 8 bits donc 1 code ASCII. C'est pour cette raison que la taille d'un fichier est calculé en octets ou plutôt en Ko (Kilo octet) voire Mo (Méga octet). Parfois, vous pourrez voir l'information : Méga byte ou Kilo byte. Il s'agit tout simplement de la traduction anglaise d'octet. En anglais, un octet est un byte à ne pas confondre avec le bit (qui correspond au 0 ou 1).


A retenir : A chaque fois que tu appuies sur une touche du clavier, la lettre que tu veux afficher est transformée en 0 et 1. On dit qu'elle est codée.

Ok mais maintenant qu'on a codé nos lettres, comment on envoie le message codé à l'ordinateur? Bah oui, c'est bien beau de coder un message mais si l'espion ne l'envoie pas au QG, ça ne sert à rien! La suite au prochain épisode...

Aucun commentaire:

Enregistrer un commentaire

N'hésitez pas à me dire si j'ai été claire ou non.
Si c'était intéressant à lire ou franchement barbant.
Et si vos enfants ont compris ou vous ont regardé l'air de dire "bon, je peux aller jouer maintenant?"