Wie wird die Code 39 Prüfziffer berechnet?

Code 39 verwendet ein einfaches Modulo 43 Prüfziffernverfahren. Jedem Zeichen des Codes ist eine Wert von 0-42 zugeordnet. Die Zeichen eines Symbols werden aufsummiert, ganzzahlig durch 43 geteilt, der Rest ist der Wert der Prüfziffer. Jedes Zeichen des Codes kann Prüfziffer sein, also auch Buchstaben oder Sonderzeichen.

Prüfziffernberechnung in C:

unsigned char calculateChecksum(unsigned char *data, int len)
{
  int sum = 0;
  for(int i = 0;i<len;i++)
  {
    sum += valueFromCharacter(*(data + i));
  }
  return characterFromValue(sum % 43);
}

Die Funktion valueFromCharacter ermittelt den Wert eines Zeichens aus einer Tabelle wie der folgenden:

unsigned char c39_cw[43] =
{
  '0','1','2','3','4','5','6','7','8','9',
  'A','B','C','D','E','F','G','H','I','J',
  'K','L','M','N','O','P','Q','R','S','T',
  'U','V','W','X','Y','Z','-','.',' ','$',
  '/','+','%'
}

Die Funktion characterFromValue funktioniert umgekehrt.

Hinweis: Alle Softmatic Anwendungen, die Code 39 generieren, erzeugen die Prüfziffer automatisch.

Bitte beachten Sie auch unsere Seite über Code 39 mit weiteren Informationen und Beispielcodes.