Kontrollsifferberegning

Beregning av kontrollsifre for strekkoder

Modulo 10

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrollsifre for strekkoder.
Det er ikke nødvendig å beregne eller legge til disse kontrollsifrene manuelt. Denne dokumentasjonen er kun inkludert for fullstendighetens skyld.
Beregning av en kontrollsum i henhold til Modulo 10:
Et kontrollsiffer i henhold til Modulo 10 brukes av EAN-koder, f.eks. EAN-13.

Med EAN-kodene beregnes kontrollsifferet i henhold til modulo 10-beregningsmetoden med vekting 3. Vekting 3 starter med det første sifferet fra høyre. Deretter multipliseres de enkelte sifrene med vektingen. Disse resultatene legges til en sum. Modulo 10 beregnes ut fra denne summen. Først deles summen med 10. Resten av divisjonen trekkes fra 10. Resultatet av denne subtraksjonen er kontrollsummen/kontrollsifferet.

Følgende er et beregningseksempel for Modulo 10 ved bruk av en EAN-13-kode:

Sifre: 4 0 0 7 6 3 0 0 0 0 1 1
Vekt: 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 sjekksum: Tillegget til neste multiplum av 10. (50)
Kontrollsiffer 6


Med Code 25 -kodene beregnes kontrollsifferet også med vekting 3 i henhold til Modulo 10-beregningsmetoden. Vektingen 3 starter imidlertid ved det første signifikante sifferet fra venstre. Deretter multipliseres de enkelte nyttige sifrene med vektingen. Disse resultatene legges sammen til en sum. Modulo 10 beregnes ut fra denne summen. Først deles summen med 10. Resten av divisjonen trekkes fra 10 (beregn differansen til 10). Resultatet av denne subtraksjonen er kontrollsummen/kontrollsifferet.

Nedenfor ser du et beregningseksempel for Modulo 10 ved bruk av kode 25:

Sifre: 1 2 3 4 5
Vekt: 3 1 3 1 3
Resultater: 3+2+9+4+15 = 33
Beregn sjekksum: Tillegget til neste multiplum av 10. (40)
Kontrollsiffer 7


Med Leitcode og Identcode beregnes kontrollsifferet også i henhold til modulo 10-beregningsmetoden. Vektingen er imidlertid annerledes her: Vekting på 4 for ujevne posisjoner og 9 for rette posisjoner. Her er et eksempel:

Sifre: 2 3 6 6 9 0 1 2 0 1 2 3 0
Vekt: 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 sjekksum: Tillegget til neste multiplum av 10. (220)
Kontrollsiffer 5


Et beregningseksempel for Modulo 10 ved bruk av en EAN-14 / ITF-14 / SCC-14 / DUN-14-kode:

Sifre: 0 4 0 0 7 6 3 0 0 0 0 1 1
Vekt: 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 sjekksum: Tillegget til neste multiplum av 10. (50)
Kontrollsiffer 6

Modulo 11

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrollsifre for strekkoder.
Det er ikke nødvendig å beregne eller legge til disse kontrollsifrene manuelt. Denne dokumentasjonen er kun inkludert for fullstendighetens skyld.
Beregning av en kontrollsum i henhold til Modulo 11:
Et kontrollsiffer i henhold til Modulo 11 brukes f.eks. av PZN. Modulo 11 brukes også for ISBN.

PZN
Først multipliseres alle sifrene individuelt med en multiplikator. Multiplikatoren tilsvarer posisjonen til sifferet 1. Alle resulterende produkter legges sammen. Resultatet deles deretter med 11. Det resulterende restbeløpet er kontrollsifferet. Hvis kontrollsifferet er 10, skal dette nummeret ikke brukes som PZN. Koden vil derfor være ugyldig.

Et beregningseksempel:

Sifre: 6 3 1 9 4 2
Vekt: 2 3 4 5 6 7
Resultater: 12+9+4+45+24+14 = 108
Beregn sjekksum: 108 / 11 = 9 Rest 9
Kontrollsiffer 9


ISBN-10 og ISSN-kontrollsummen
Først multipliseres alle sifrene individuelt med en multiplikator. Multiplikatoren tilsvarer posisjonen til sifferet 1 fra høyre. Alle resulterende produkter legges sammen. Resultatet deles deretter med 11. Den resulterende resten trekkes fra 11 og gir kontrollsifferet.
Hvis resultatet 11 beregnes for denne kontrollsumprosedyren, er kontrollsummen 0. Som resultat kunne ikke 0 beregnes, fordi i forrige trinn (resten etter divisjon med 11) er 11 umulig som resultat.
Det kan også hende at tallet 10 er påkrevd. 10 er representert med et X: «3-928444-00-X».

Et beregningseksempel:

Sifre: 3 9 2 8 4 4 4 0 4
Vekt: 10 9 8 7 6 5 4 3 2
Resultater: 30 + 81 + 16 + 56 + 24 + 20 + 16 + 0 + 8 = 251
Beregn sjekksum: 251 / 11 = 22 Rest 9 -> 11 - 9 = 2
Kontrollsiffer 2

Modulo 16

ActiveBarcode: Info ActiveBarcode beregner automatisk kontrollsifre for strekkoder.
Det er ikke nødvendig å beregne eller legge til disse kontrollsifrene manuelt. Denne dokumentasjonen er kun inkludert for fullstendighetens skyld.
Beregning av en kontrollsum i henhold til Modulo 16:
Modulo 16 brukes av strekkodesymbolikken Codabar. Her er et eksempel på hvordan man beregner kontrollsifferet i henhold til Modulo 16:

Sifre: A 7 8 9 A
Referansenummer: 16 7 8 9 16
Sum av referansenumre: 56
Beregn sjekksum: 56 / 16 = 3 Rest 8
difference: 16 - 8 = 8
Kontrollsiffer Referansenummer 8 = 8

Referansenummer:
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 kontrollsifre for strekkoder.
Det er ikke nødvendig å beregne eller legge til disse kontrollsifrene manuelt. Denne dokumentasjonen er kun inkludert for fullstendighetens skyld.
Beregning av en kontrollsum i henhold til Modulo 43:
Et kontrollsiffer i henhold til Modulo 43 brukes f.eks. av Code 39.

Først tildeles referansenumre til alle tegnene i koden. Disse referansenumrene legges til en total. Dette beløpet deles med 43. Resten av denne divisjonen tilsvarer kontrollsummen, som deretter erstattes av tegnet som tilsvarer referansenummeret.

Et beregningseksempel:

Sifre: 1 5 9 A Z
Referansenummer: 1 +5 +9 +10 +35
Sum av referansenumre: 60
Beregn sjekksum: 60 / 43 = 1 Rest 17
Kontrollsiffer "H" (Referansenummer 17)

Referansenummer:
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 for beregning av kontrollsummen i henhold til Modulo 43

Excel VBA-kode for beregning av kontrollsummen 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 kontrollsifre for strekkoder.
Det er ikke nødvendig å beregne eller legge til disse kontrollsifrene manuelt. Denne dokumentasjonen er kun inkludert for fullstendighetens skyld.
Beregning av en kontrollsum i henhold til Modulo 47:
Et kontrolltegn i henhold til Modulo 47 brukes f.eks. av Code 93.

Kode 93 bruker to kontrollsummer, den såkalte C -kontrollsummen og den såkalte K -kontrollsummen. Begge beregnes etter samme prinsipp. K -kontrollsummen inneholder imidlertid også C -kontrollsummen.

Under beregningen tildeles først referansenumre til alle tegnene i koden. Hvert siffer i koden er tildelt en vekting og var inkrementell bakfra. Følgelig har den siste posisjonen vekten 1, den nest siste posisjonen vekten 2, og så videre. Referansenumrene multipliseres i hvert tilfelle med vektingen. De individuelle resultatene legges sammen.

Dette totalbeløpet deles nå med 47. Resten av denne divisjonen tilsvarer kontrollsummen, som er kodet som et tegn ved hjelp av referansenummeret.

K -kontrollsummen beregnes på samme måte. Denne gangen brukes imidlertid tegnstrengen i koden – som ved den første kontrollsummen – pluss C- kontrollsummen som grunnlag. Den første bestemte kontrollsummen inngår i beregningen av den andre kontrollsummen.

Et beregningseksempel:

Checksum with Modulo47

Referansenummer 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