Kontrolcifferberegning

Beregning af kontrolcifre for stregkoder

Modulo 10

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrolcifre for stregkoder.
Det er ikke nødvendigt at beregne eller tilføje disse kontrolcifre manuelt. Denne dokumentation er kun medtaget for fuldstændighedens skyld.
Beregning af en kontrolsum i henhold til Modulo 10:
Et kontrolciffer i henhold til Modulo 10 bruges af EAN-koder, f.eks. EAN-13.

Med EAN-koderne beregnes kontrolcifferet efter modulo 10-beregningsmetoden med vægtningen 3. Vægtning 3 starter ved det første ciffer fra højre. Derefter multipliceres de enkelte cifre med vægtningen. Disse resultater lægges sammen til en sum. Modulo 10 beregnes ud fra denne sum. Først divideres summen med 10. Resten af divisionen trækkes fra 10. Resultatet af denne subtraktion er kontrolsummen/kontrolcifferet.

Følgende er et beregningseksempel for Modulo 10 ved hjælp af en EAN-13-kode:

Ciffer: 4 0 0 7 6 3 0 0 0 0 1 1
Vægt: 1 3 1 3 1 3 1 3 1 3 1 3
Resultater: 4+0+0+21+6+9+0+0+0+0+1+3 = 44
Beregn kontrolsum: Tilføjelsen til det næste multiplum af 10. (50)
Kontrolciffer 6


Med kode 25 -koderne beregnes kontrolcifferet også med vægtning 3 i henhold til Modulo 10-beregningsmetoden. Vægtningen 3 starter dog ved det første brugbare ciffer fra venstre. Derefter multipliceres de enkelte nyttige cifre med vægtningen. Disse resultater lægges sammen til en sum. Modulo 10 beregnes ud fra denne sum. Først divideres summen med 10. Resten af divisionen trækkes fra 10 (beregn forskellen til 10). Resultatet af denne subtraktion er kontrolsummen/kontrolcifferet.

Nedenfor kan du se et beregningseksempel for Modulo 10 ved hjælp af kode 25:

Ciffer: 1 2 3 4 5
Vægt: 3 1 3 1 3
Resultater: 3+2+9+4+15 = 33
Beregn kontrolsum: Tilføjelsen til det næste multiplum af 10. (40)
Kontrolciffer 7


Med Leitcode og Identcode beregnes kontrolcifferet også efter modulo 10-beregningsmetoden. Vægtningen er dog anderledes her: Vægtning på 4 for ulige positioner og 9 for lige positioner. Her er et eksempel:

Ciffer: 2 3 6 6 9 0 1 2 0 1 2 3 0
Vægt: 4 9 4 9 4 9 4 9 4 9 4 9 4
Resultater: 8+27+24+54+36+0+4+18+0+9+8+27+0 = 215
Beregn kontrolsum: Tilføjelsen til det næste multiplum af 10. (220)
Kontrolciffer 5


Et beregningseksempel for Modulo 10 ved hjælp af en EAN-14 / ITF-14 / SCC-14 / DUN-14-kode:

Ciffer: 0 4 0 0 7 6 3 0 0 0 0 1 1
Vægt: 3 1 3 1 3 1 3 1 3 1 3 1 3
Resultater: 0+4+0+0+21+6+9+0+0+0+0+1+3 = 44
Beregn kontrolsum: Tilføjelsen til det næste multiplum af 10. (50)
Kontrolciffer 6

Modulo 11

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrolcifre for stregkoder.
Det er ikke nødvendigt at beregne eller tilføje disse kontrolcifre manuelt. Denne dokumentation er kun medtaget for fuldstændighedens skyld.
Beregning af en kontrolsum i henhold til Modulo 11:
Et kontrolciffer i henhold til Modulo 11 bruges f.eks. af PZN. Modulo 11 bruges også til ISBN.

PZN
Først multipliceres alle cifre individuelt med en multiplikator. Multiplikatoren svarer til positionen af cifferet 1. Alle resulterende produkter lægges sammen. Resultatet divideres derefter med 11. Det resterende tal er kontrolcifferet. Hvis kontrolcifferet er 10, må dette nummer ikke anvendes som PZN. Koden vil derfor være ugyldig.

Et beregningseksempel:

Ciffer: 6 3 1 9 4 2
Vægt: 2 3 4 5 6 7
Resultater: 12+9+4+45+24+14 = 108
Beregn kontrolsum: 108 / 11 = 9 Restbeløb 9
Kontrolciffer 9


ISBN-10 og ISSN-kontrolsummen
Først multipliceres alle cifre individuelt med en multiplikator. Multiplikatoren svarer til positionen af cifret 1 fra højre. Alle resulterende produkter lægges sammen. Resultatet divideres derefter med 11. Den resulterende rest trækkes fra 11 og giver kontrolcifferet.
Hvis resultatet 11 beregnes for denne kontrolsumprocedure, er kontrolsummen 0. Som følge heraf kunne 0 ikke beregnes, fordi 11 i det foregående trin (resten efter division med 11) er umuligt som resultat.
Det kan også forekomme, at tallet 10 er påkrævet. 10 er repræsenteret ved et X: "3-928444-00-X".

Et beregningseksempel:

Ciffer: 3 9 2 8 4 4 4 0 4
Vægt: 10 9 8 7 6 5 4 3 2
Resultater: 30 + 81 + 16 + 56 + 24 + 20 + 16 + 0 + 8 = 251
Beregn kontrolsum: 251 / 11 = 22 Restbeløb 9 -> 11 - 9 = 2
Kontrolciffer 2

Modulo 16

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrolcifre for stregkoder.
Det er ikke nødvendigt at beregne eller tilføje disse kontrolcifre manuelt. Denne dokumentation er kun medtaget for fuldstændighedens skyld.
Beregning af en kontrolsum i henhold til Modulo 16:
Modulo 16 bruges af stregkodesymbolikken Codabar. Her er et eksempel på, hvordan man beregner kontrolcifferet i henhold til Modulo 16:

Ciffer: A 7 8 9 A
Referencenumre: 16 7 8 9 16
Summen af referencenumre: 56
Beregn kontrolsum: 56 / 16 = 3 Restbeløb 8
difference: 16 - 8 = 8
Kontrolciffer Referencenummer 8 = 8

Referencenumre:
00 = 0
01 = 1
02 = 2
03 = 3
04 = 4
05 = 5
06 = 6
07 = 7
08 = 8
09 = 9
10 = -
11 = $
12 = :
13 = /
14 = .
15 = +
16 = A
17 = B
18 = C
19 = D

Modulo 43

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrolcifre for stregkoder.
Det er ikke nødvendigt at beregne eller tilføje disse kontrolcifre manuelt. Denne dokumentation er kun medtaget for fuldstændighedens skyld.
Beregning af en kontrolsum i henhold til Modulo 43:
Et kontrolciffer i henhold til Modulo 43 bruges f.eks. af Code 39.

Først tildeles alle tegn i koden referencenumre. Disse referencenumre lægges sammen til et samlet beløb. Dette beløb divideres med 43. Resten af denne division svarer til kontrolsummen, som derefter erstattes af det tegn, der svarer til referencenummeret.

Et beregningseksempel:

Ciffer: 1 5 9 A Z
Referencenumre: 1 +5 +9 +10 +35
Summen af referencenumre: 60
Beregn kontrolsum: 60 / 43 = 1 Restbeløb 17
Kontrolciffer "H" (Referencenummer 17)

Referencenumre:
00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %


Kodeeksempel til beregning af kontrolsummen i henhold til Modulo 43

Excel VBA-kode til beregning af kontrolsummen i henhold til Modulo 43, f.eks. for HIBC-koden:
' calc modulo 43
‘ returns the input string plus the check character
' demo for www.activebarcode.com
Public Function MOD43CheckChar(sValue As String) As String
    Const charSet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
    Dim i As Integer
    Dim T As Long
    For i = 1 To Len(Trim(UCase(sValue)))
        T = InStr(charSet, Mid(sValue, i, 1)) - 1 + T
    Next i
    MOD43CheckChar = sValue & Mid$(charSet, (T Mod 43 + 1), 1)
End Function

Modulo 47

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrolcifre for stregkoder.
Det er ikke nødvendigt at beregne eller tilføje disse kontrolcifre manuelt. Denne dokumentation er kun medtaget for fuldstændighedens skyld.
Beregning af en kontrolsum i henhold til Modulo 47:
Et kontroltegn i henhold til Modulo 47 bruges f.eks. af Code 93.

Kode 93 bruger 2 kontrolsummer, den såkaldte C -kontrolsum og den såkaldte K -kontrolsum. Begge beregnes efter samme princip. K -kontrolsummen indeholder dog også C -kontrolsummen.

Under beregningen tildeles først referencenumre til alle tegn i koden. Hvert ciffer i koden tildeles en vægtning og blev inkrementeret bagfra. Derfor har den sidste position vægten 1, den næstsidste position vægten 2 og så videre. Referencenumrene ganges i hvert tilfælde med vægtningen. De individuelle resultater lægges sammen.

Dette beløb divideres nu med 47. Resten af denne opdeling svarer til kontrolsummen, som er kodet som et tegn ved hjælp af referencenummeret.

K -kontrolsummen bestemmes på samme måde. Denne gang anvendes imidlertid kodens tegnstreng – som ved den første kontrolsum – plus C-kontrolsummen som grundlag. Den første fastlagte kontrolsum indgår i beregningen af den anden kontrolsum.

Et beregningseksempel:

Checksum with Modulo47

Referencenumre Code 93:

00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %
43 ($)
44 (%)
45 (/)
46 (+)
- * Start/Stop