Le processus d'encodage accepte en entrée des groupes de 24 bits et renvoie en sortie des chaînes de quatre caractères encodés. Procédant de gauche à droite, un groupe de 24 bits est formé par concaténation de 3 groupes de 8 bits. Ces 24 bits sont ensuite traités comme étant 4 groupes de 6 bits, chacun d'entre eux étant associé à un unique signe de l'alphabet Radix-64. Lorsque l'on encode un flux de bit à l'aide de l'encodage Radix-64, le flux doit être ordonné de manière à ce que les bits de poids fort soient en premier. Cela signifie que le premier bit du flux doit être le bit de poids le plus fort du premier octet, le huitième, étant le bit de poids le plus faible du premier octet, et ansi de suite.
+-- 1er octet --+- 2eme octet -+-- 3eme octet --+
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
+-----------+---+-------+-------+---+-----------+
|5 4 3 2 1 0|5 4 3 2 1 0|5 4 3 2 1 0|5 4 3 2 1 0|
+- 1.index -+- 2.index -+- 3.index -+- 4.index -+
Chaque groupe de six bits est utilisé comme un index dans un tableau de 64 caractères imprimables (cf tableau suivant). Le caractère référencé par l'index est placé dans la chaîne de sortie.
Tableau 6-1. Valeurs encodées
Valeurs encodées | |||
---|---|---|---|
0 A | 17 R | 34 i | 51 z |
1 B | 18 S | 35 j | 52 0 |
2 C | 19 T | 36 k | 53 1 |
3 D | 20 U | 37 l | 54 2 |
4 E | 21 V | 38 m | 55 3 |
5 F | 22 W | 39 n | 56 4 |
6 G | 23 X | 40 o | 57 5 |
7 H | 24 Y | 41 p | 58 6 |
8 I | 25 Z | 42 q | 59 7 |
9 J | 26 a | 43 r | 60 8 |
10 K | 27 b | 44 s | 61 9 |
11 L | 28 c | 45 t | 62 + |
12 M | 29 d | 46 u | 63 / |
13 N | 30 e | 47 v | |
14 O | 31 f | 48 w | (caractère de remplissage)= |
15 P | 32 g | 49 x | |
16 Q | 33 h | 50 y |
Le flux de caractères encodés en sortie doit être représenté par des lignes de moins de 76 caractères chacune. Un processus particulier est appliqué au dernier groupement de bits lorsque celui-ci est composé de moins de 24 bits. Il y a donc trois possibilités :
S'il est composé de 24 bitss (3 octets), aucun processus particulier n'est requis,
S'il est composé de 16 bits (2 octets), les deux premiers groupes de six caractères sont traités comme précédemment. Le troisième groupe de donnée (incomplet) se voit attribuer 2 bits nuls suplémentaires avant traitement. Un caractère supplémentaire est ajouté à la sortie (=),
S'il est composé de 8 bits (1 octets), le premier groupe de six caractères est traité comme précédemment. Le deuxième groupe de donnée (incomplet) se voit attribuer 4 bits nuls suplémentaires avant traitement. Deux caractères supplémentaires sont ajoutés à la sortie (==).
Précédent | Sommaire | Suivant |
Création de l'armure ASCII | Niveau supérieur | Décoder du Radix-64 |