// Tu parles la langue des PC, toi? / Recevoir de l’aide

Textcodierung

Tout comme pour le langage morse il est nécessaire d’avoir un tableau de traduction pour les opérations de codage et de décodage de textes. Dans ce tableau, chaque signe pouvant être utilisé dans un texte correspond à une combinaison de 0 et de 1.

0100000 0 0110000 @ 1000000 P 1010000 ` 1100000 p 1110000
! 0100001 1 0110001 A 1000001 Q 1010001 a 1100001 q 1110001
" 0100010 2 0110010 B 1000010 R 1010010 b 1100010 r 1110010
# 0100011 3 0110011 C 1000011 S 1010011 c 1100011 s 1110011
$ 0100100 4 0110100 D 1000100 T 1010100 d 1100100 t 1110100
% 0100101 5 0110101 E 1000101 U 1010101 e 1100101 u 1110101
& 0100110 6 0110110 F 1000110 V 1010110 f 1100110 v 1110110
' 0100111 7 0110111 G 1000111 W 1010111 g 1100111 w 1110111
( 0101000 8 0111000 H 1001000 X 1011000 h 1101000 x 1111000
) 0101001 9 0111001 I 1001001 Y 1011001 i 1101001 y 1111001
* 0101010 : 0111010 J 1001010 Z 1011010 j 1101010 z 1111010
+ 0101011 ; 0111011 K 1001011 [ 1011011 k 1101011 { 1111011
, 0101100 < 0111100 L 1001100 \ 1011100 l 1101100 | 1111100
- 0101101 = 0111101 M 1001101 ] 1011101 m 1101101 } 1111101
. 0101110 > 0111110 N 1001110 ^ 1011110 n 1101110 ~ 1111110
/ 0101111 ? 0111111 O 1001111 _ 1011111 o 1101111 DEL 1111111

Exemple: la lettre t minuscule correspond à la suite 1110100

Ce tableau a été publié pour la première fois en 1967 en tant que standard. Son nom est American Standard Code for Information Interchange (ASCII). Il est communément utilisé de nos jours dans les ordinateurs pour le codage de textes (voir Wikipedia http://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange).

Compression de texte

Le téléphone portable des trois robots est équipé d’un procédé de compression pour les messages textuels. Il s’agit d’un procédé de compression sans perte qui tient compte des spécificités de l’orthographe française. En français, la répétition de lettres est fréquente. Le tableau de codage figurant ci-dessus est donc complété par la règle suivante:

Si une lettre n’apparaît qu’une fois, appose un 0 devant le code binaire de la lettre, si la lettre apparaît deux fois, appose un 1 devant le code binaire de la lettre.

01010010 b
11010010 bb

Exemple de message

Voyez ici comment on peut coder un message texte et quels sont les effets de la compression. Pour illustrer l’exemple, prenons le mot

assaisonnement

Sans compression, le codage est relativement simple. Chaque lettre doit être remplacée par le code correspondant figurant dans le tableau ci-dessus:

S 1010011
c 1100011
h 1101000
i 1101001
f 1100110
f 1100110
f 1100110
a 1100001
h 1101000
r 1110010
t 1110100
s 1110011
g 1100111
e 1100101
s 1110011
e 1100101
l 1101100
l 1101100
s 1110011
c 1100011
h 1101000
a 1100001
f 1100110
t 1110100

Si l’on rassemble tous les codes individuels, on arrive au message suivant, se composant de 98 bits (=14 x 7)

1010011110001111010001101001110011011001
1011001101100001110100011100101110100111
0011110011111001011110011110010111011001
1011001110011110001111010001100001110011
01110100

Avec la règle de compression, le codage devient plus complexe, car chaque signe ne correspond pas forcément à un code. Dans l’exemple, il y a deux endroits où la règle de compression permet de faire une économie, à savoir là où la lettre double peut être représentée par un seul code.

S 01010011
c 01100011
h 01101000
i 01101001
ff 11100110
f 01100110
a 01100001
h 01101000
r 01110010
t 01110100
s 01110011
g 01100111
e 01100101
s 01110011
e 01100101
ll 11101100
s 01110011
c 01100011
h 01101000
a 01100001
f 01100110
t 01110100

La compression a permis une petite économie de place, puisque le message se compose de 96 bits (=12 x 8). Il est donc un peu plus court que le message non comprimé.

0101001101100011011010000110100111100110
0110011001100001011010000111001001110100
0111001101100111011001010111001101100101
1110110001110011011000110110100001100001
0110011001110100

Exercice de remue-méninges: Existe-t-il d’autres règles de compression efficaces pour comprimer la langue française?

La décompression est plus simple dans l’ordre inverse:

  1. Diviser le message en groupes de 8 bits.
  2. Pour chaque groupe de 8 bits, chercher la correspondance dans le tableau des codes.