Encoder des données binaires en Radix-64

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 A17 R34 i51 z
1 B18 S35 j52 0
2 C19 T36 k53 1
3 D20 U37 l54 2
4 E21 V38 m55 3
5 F22 W39 n56 4
6 G23 X40 o57 5
7 H24 Y41 p58 6
8 I25 Z42 q59 7
9 J26 a43 r60 8
10 K27 b44 s61 9
11 L28 c45 t62 +
12 M29 d46 u63 /
13 N30 e47 v 
14 O31 f48 w(caractère de remplissage)=
15 P32 g49 x 
16 Q33 h50 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 :