Voir aussi: les autres codes à barres

Le Code 128 a été inventé par Ted Williams de LaserLight Systems et mis sur le marché, en 1981, par la société Computer Identics. Le code 128 a une longueur variable, c'est un code très dense.

Composition : Voir la table de composition du Code 128 ici.

Alphanumérique, 
codes des touches de fonctions (F1, F2, etc.)
caractères spéciaux
(tous les caractères ASCII ),

Il existe 3 jeux de caractères :
Les 3 jeux de caractères peuvent être mélangés à l'intérieur d'un même code.

Il est  automatiquement doté d'un checkdigit (caractère de contrôle).

Application :

Calcul du checkdigit d'un Code 128 :

Le calcul du checkdigit peut se révéler assez ardu :

Pour calculer le Checkdigit, suivre ces étapes :

  1. Initialiser le variable checkdigit avec la valeur du caractère "Start" (103, 104 ou 105 pour les Subset A, B ou C respectivement)
  2. Initialiser un "multiplicateur" à la valeur 1.
  3. En commençant par la gauche du code, ajouter la valeur numérique de chaque caractère multipliée par le "multiplicateur" au checkdigit.
    Incrémenter le "multiplicateur" après chaque caractère.
  4. Diviser le résultat par 103. Le reste de la division est le checkdigit.
  5. Convertir le Checkdigit numérique en caractère ASCII.
     
Le détail de la conversion du Checkdigit numérique en caractère ASCII varie en fonction du Subset utilisé.

Une manipulation particulière est requise dans les cas où le code ASCII du caractère résultant est égal à zéro ou est supérieur à 95.

De manière générale :

En Subset A :
  1. si le Checkdigit est compris entre 0 et 63 (inclus) :
    ajouter 32 (code ASCII de l'espace) au Checksum pour obtenir le caractère qui représentera le Checkdigit.
  2. Si le Checkdigit est égal à 64 ou supérieur :
    soustraire 64 pour obtenir le caractère.
En Subset B : En Subset C :