Codes-barres et codes 1D

Qu'est-ce qu'un chiffre de contrôle et comment détecte-t-il les erreurs ?

Ce dernier chiffre sur un code-barres n'est pas aléatoire — c'est un chiffre de contrôle. Comment une formule simple détecte les erreurs de scan et de saisie.

Un chiffre de contrôle est le détecteur de mensonges intégré d'un code-barres. C'est un seul chiffre supplémentaire, calculé à partir de tous les autres, dont l'unique but est de révéler quand un code a été mal scanné ou mal saisi. Comprendre son fonctionnement vous montre pourquoi un numéro de produit mal tapé passe presque jamais inaperçu. 🐾

Qu'est-ce qu'un chiffre de contrôle ?

Un chiffre de contrôle est un chiffre de redondance : un nombre calculé à partir des autres chiffres d'un code au moyen d'une formule fixe, puis accolé à la fin. Lorsque le code est ensuite scanné, le lecteur applique la même formule aux chiffres entrants et vérifie si le résultat correspond toujours à ce chiffre final. Si ce n'est pas le cas, quelque chose a été mal lu, et le scanner rejette le code plutôt que d'agir sur de mauvaises données.

Ce chiffre ne porte aucune information de produit qui lui soit propre. C'est de la pure détection d'erreurs. Cette idée s'inscrit dans une famille de techniques bien plus vaste, que nous parcourons dans détection contre correction d'erreurs et sommes de contrôle, hachages et parité. Dans un code-barres, c'est la dernière ligne de défense, silencieuse, contre un scan qui dérape.

Comment fonctionne le chiffre de contrôle UPC et EAN ?

L'UPC-A et l'EAN-13 utilisent tous deux un algorithme pondéré modulo 10. La partie astucieuse est la pondération alternée : les chiffres ne sont pas simplement additionnés. Au lieu de cela, un chiffre sur deux est multiplié par 3 et le reste par 1 avant la somme, ce qui explique pourquoi on parle souvent de pondération 3-1.

Voici la recette pour un UPC-A, dont les 11 premiers chiffres sont les données et dont le 12e chiffre est le contrôle :

  1. Prenez les 11 chiffres de données et numérotez-les depuis la gauche.
  2. Additionnez les chiffres en positions impaires (1re, 3e, 5e, et ainsi de suite) et multipliez cette somme par 3.
  3. Additionnez les chiffres en positions paires (2e, 4e, 6e, et ainsi de suite) et multipliez cette somme par 1.
  4. Additionnez les deux résultats pour obtenir un total.
  5. Trouvez ce qu'il faut ajouter pour atteindre le multiple de 10 suivant. Ce nombre, le complément modulo 10, est le chiffre de contrôle.

En bref, le chiffre de contrôle est ce qui fait que la somme pondérée entière se divise exactement par 10.

Un exemple concret, étape par étape

Calculons le chiffre de contrôle pour l'UPC-A dont les 11 chiffres de données sont 03600029145. En numérotant depuis la gauche, les chiffres occupent les positions 1 à 11.

Position1234567891011
Chiffre03600029145

Étape 1 — positions impaires (1, 3, 5, 7, 9, 11) : 0 + 6 + 0 + 2 + 1 + 5 = 14. Multipliez par 3 : 14 × 3 = 42.

Étape 2 — positions paires (2, 4, 6, 8, 10) : 3 + 0 + 0 + 9 + 4 = 16.

Étape 3 — total : 42 + 16 = 58.

Étape 4 — complément modulo 10 : 58 divisé par 10 laisse un reste de 8. Pour atteindre le multiple de 10 suivant (soit 60), il faut ajouter 2. Le chiffre de contrôle est donc 2.

L'UPC-A complet et valide est 036000291452. Si un scanner lit un jour un chiffre final différent, le calcul ne tombera pas juste, et le code est rejeté.

Un détail élégant : quand le reste est déjà 0, le chiffre de contrôle est 0, et non 10. C'est ce que garantit le « modulo 10 », un seul chiffre à chaque fois.

Quelles erreurs un chiffre de contrôle détecte-t-il ?

Le schéma pondéré modulo 10 est délibérément conçu pour détecter les deux bévues humaines et machines les plus courantes.

Erreurs sur un seul chiffre

Si un seul chiffre est mal lu, disons un 3 qui devient un 8, le total pondéré se décale et ne tombe plus sur un multiple de 10. Un chiffre de contrôle détecte toutes les erreurs sur un seul chiffre.

Erreurs de transposition

Une transposition, c'est quand deux chiffres adjacents sont intervertis, comme taper 21 au lieu de 12, un faux pas classique des doigts. Comme des positions voisines portent des poids différents (l'une est multipliée par 3, l'autre par 1), les intervertir change généralement le total, si bien que la plupart des transpositions sont détectées elles aussi.

Quelles erreurs peuvent passer ?

Aucun chiffre de contrôle unique n'est parfait, et il est honnête de le dire. La pondération 3-1 manque un cas précis et étroit : une transposition de deux chiffres adjacents qui diffèrent d'exactement 5. Par exemple, intervertir un 1 et un 6 laisse le total pondéré inchangé, car la différence créée par l'échange est un multiple de 10 et s'évanouit sous le modulo 10.

Ces angles morts sont rares, ce qui explique pourquoi un seul chiffre de contrôle suffit pour le commerce de détail. Quand une fiabilité bien plus élevée est nécessaire, les systèmes superposent des schémas plus robustes, des sommes de contrôle plus longues jusqu'à la correction d'erreurs complète intégrée aux codes 2D, décrite dans la correction d'erreurs des codes QR. Un chiffre de contrôle est un gardien astucieux, pas un gardien infaillible.

Pourquoi cela compte-t-il pour les codes-barres du quotidien ?

Chaque fois que le scanner d'un caissier émet un bip, ce bip signifie que le chiffre de contrôle est passé. Un bip échoué, ou un « veuillez rescanner », signifie souvent que le lecteur a détecté une erreur de lecture avant qu'elle puisse vous faire payer le mauvais article. Ce minuscule bout de mathématiques, qui tourne silencieusement des milliards de fois par jour, est une grande raison pour laquelle on fait confiance aux codes-barres.

Tout le système déterminant qui émet ces numéros et les garde uniques est coordonné à l'échelle mondiale, comme nous l'expliquons dans les normes de codes-barres GS1, et vous pouvez voir d'où vient le code de détail dans l'histoire du code-barres UPC. Si vous préférez encoder un message complet plutôt qu'un numéro de référence, vous pouvez créer un code QR gratuit dont la grille porte sa propre correction d'erreurs, bien plus puissante.

Questions fréquentes

Qu'est-ce qu'un chiffre de contrôle ?

C'est un chiffre supplémentaire calculé à partir des autres chiffres d'un code au moyen d'une formule fixe. Un scanner le recalcule sur les chiffres qu'il lit et rejette le code si le résultat ne correspond pas, détectant ainsi les erreurs de lecture.

Comment le chiffre de contrôle UPC est-il calculé ?

Additionnez les chiffres en positions impaires et multipliez par 3, additionnez les chiffres en positions paires, faites la somme des deux résultats, puis prenez le nombre nécessaire pour atteindre le multiple de 10 suivant. Ce complément modulo 10 est le chiffre de contrôle.

Que signifie la pondération 3-1 ?

Un chiffre sur deux est multiplié par 3 et le reste par 1 avant la somme. Donner des poids différents aux positions voisines est ce qui permet au schéma de détecter la plupart des erreurs de transposition.

Quelles erreurs un chiffre de contrôle manque-t-il ?

Le schéma UPC et EAN détecte toutes les erreurs sur un seul chiffre et la plupart des transpositions, mais il peut manquer l'échange de deux chiffres adjacents qui diffèrent d'exactement 5, car ce changement s'annule sous le modulo 10.

Les codes QR utilisent-ils un chiffre de contrôle ?

Les codes QR vont plus loin, en utilisant une correction d'erreurs intégrée capable à la fois de détecter et de réparer les dommages, plutôt qu'un seul chiffre de contrôle qui ne fait que détecter les erreurs.

Créez un QR code de façon honnête 🐾

Gratuit pour toujours, sans suivi, sans expiration — généré directement dans votre navigateur.

🎨 Créer un QR code →