Výpočet kontrolní číslice

Výpočet kontrolních číslic pro čárové kódy

Modulo 10

ActiveBarcode: Info ActiveBarcode automaticky vypočítává kontrolní číslice pro čárové kódy.
Není nutné tyto kontrolní číslice počítat nebo přidávat ručně. Tato dokumentace je uvedena pouze pro úplnost.
Výpočet kontrolního součtu podle Modulo 10:
Kontrolní číslice podle Modulo 10 se používá v kódech EAN, např. EAN-13.

U kódů EAN se kontrolní číslice počítá podle výpočtové metody modulo 10 s váhou 3. Váha 3 začíná u první číslice zprava. Poté se jednotlivé číslice vynásobí váhou. Tyto výsledky se sčítají do celkové částky. Modulo 10 se vypočítá z této sumy. Nejprve se suma vydělí 10. Zbytek dělení se odečte od 10. Výsledkem tohoto odečtení je kontrolní součet/kontrolní číslice.

Následuje příklad výpočtu pro Modulo 10 pomocí kódu EAN-13:

Číslice: 4 0 0 7 6 3 0 0 0 0 1 1
Hmotnost: 1 3 1 3 1 3 1 3 1 3 1 3
Výsledky: 4+0+0+21+6+9+0+0+0+0+1+3 = 44
Vypočítat kontrolní součet: Přidání k nejbližšímu násobku 10. (50)
Kontrola číslice 6


U kódů Code 25 se kontrolní číslice také počítá s váhou 3 podle výpočetní metody Modulo 10. Váha 3 však začíná u první platné číslice zleva. Poté se jednotlivé užitečné číslice vynásobí váhou. Tyto výsledné výsledky se sčítají do součtu. Modulo 10 se vypočítá z této sumy. Nejprve se součet vydělí deseti. Zbytek dělení se odečte od 10 (vypočítá se rozdíl k 10). Výsledkem tohoto odečtení je kontrolní součet/kontrolní číslice.

Níže je uveden příklad výpočtu pro Modulo 10 pomocí kódu 25:

Číslice: 1 2 3 4 5
Hmotnost: 3 1 3 1 3
Výsledky: 3+2+9+4+15 = 33
Vypočítat kontrolní součet: Přidání k nejbližšímu násobku 10. (40)
Kontrola číslice 7


U Leitcode a Identcode se kontrolní číslice také počítá podle výpočtové metody modulo 10. Zde je však váha odlišná: Váha 4 pro lichá pole a 9 pro rovná pole. Zde je příklad:

Číslice: 2 3 6 6 9 0 1 2 0 1 2 3 0
Hmotnost: 4 9 4 9 4 9 4 9 4 9 4 9 4
Výsledky: 8+27+24+54+36+0+4+18+0+9+8+27+0 = 215
Vypočítat kontrolní součet: Přidání k nejbližšímu násobku 10. (220)
Kontrola číslice 5


Příklad výpočtu pro Modulo 10 s použitím kódu EAN-14 / ITF-14 / SCC-14 / DUN-14:

Číslice: 0 4 0 0 7 6 3 0 0 0 0 1 1
Hmotnost: 3 1 3 1 3 1 3 1 3 1 3 1 3
Výsledky: 0+4+0+0+21+6+9+0+0+0+0+1+3 = 44
Vypočítat kontrolní součet: Přidání k nejbližšímu násobku 10. (50)
Kontrola číslice 6

Modulo 11

ActiveBarcode: Info ActiveBarcode automaticky vypočítává kontrolní číslice pro čárové kódy.
Není nutné tyto kontrolní číslice počítat nebo přidávat ručně. Tato dokumentace je uvedena pouze pro úplnost.
Výpočet kontrolního součtu podle Modulo 11:
Kontrolní číslice podle Modulo 11 se používá např. u PZN. Modulo 11 se používá také u ISBN.

PZN
Nejprve se všechny číslice vynásobí jednotlivě násobitelem. Multiplikátor odpovídá pozici číslice 1. Všechny výsledné produkty se sečtou. Výsledek se poté vydělí 11. Výsledný zbytek je kontrolní číslice. Pokud je kontrolní číslice 10, toto číslo se nesmí použít jako PZN. Kód by proto byl neplatný.

Příklad výpočtu:

Číslice: 6 3 1 9 4 2
Hmotnost: 2 3 4 5 6 7
Výsledky: 12+9+4+45+24+14 = 108
Vypočítat kontrolní součet: 108 / 11 = 9 Zbytek 9
Kontrola číslice 9


Kontrolní součet ISBN-10 a ISSN
Nejprve se všechny číslice vynásobí jednotlivě násobitelem. Multiplikátor odpovídá pozici číslice 1 zprava. Všechny výsledné produkty se sečtou. Výsledek se poté vydělí 11. Výsledný zbytek se odečte od 11 a výsledkem je kontrolní číslice.
Pokud je pro tento kontrolní součet vypočítán výsledek 11, kontrolní součet je 0. V důsledku toho nebylo možné vypočítat 0, protože v předchozím kroku (zbytek po dělení 11) není možné, aby výsledek byl 11.
Může se také stát, že bude vyžadována číslice 10. 10 je reprezentováno znakem X: „3-928444-00-X“.

Příklad výpočtu:

Číslice: 3 9 2 8 4 4 4 0 4
Hmotnost: 10 9 8 7 6 5 4 3 2
Výsledky: 30 + 81 + 16 + 56 + 24 + 20 + 16 + 0 + 8 = 251
Vypočítat kontrolní součet: 251 / 11 = 22 Zbytek 9 -> 11 - 9 = 2
Kontrola číslice 2

Modulo 16

ActiveBarcode: Info ActiveBarcode automaticky vypočítává kontrolní číslice pro čárové kódy.
Není nutné tyto kontrolní číslice počítat nebo přidávat ručně. Tato dokumentace je uvedena pouze pro úplnost.
Výpočet kontrolního součtu podle Modulo 16:
Modulo 16 se používá v symbolice čárových kódů Codabar. Zde je příklad výpočtu kontrolního čísla podle Modulo 16:

Číslice: A 7 8 9 A
Referenční čísla: 16 7 8 9 16
Součet referenčních čísel: 56
Vypočítat kontrolní součet: 56 / 16 = 3 Zbytek 8
difference: 16 - 8 = 8
Kontrola číslice Referenční číslo 8 = 8

Referenční čísla:
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 automaticky vypočítává kontrolní číslice pro čárové kódy.
Není nutné tyto kontrolní číslice počítat nebo přidávat ručně. Tato dokumentace je uvedena pouze pro úplnost.
Výpočet kontrolního součtu podle Modulo 43:
Kontrolní číslice podle Modulo 43 se používá např. v kódu 39.

Nejprve jsou všem znakům kódu přiřazena referenční čísla. Tyto referenční čísla se sčítají do celkové částky. Tato částka se dělí 43. Zbytek tohoto oddílu odpovídá kontrolnímu součtu, který je poté nahrazen znakem odpovídajícím referenčnímu číslu.

Příklad výpočtu:

Číslice: 1 5 9 A Z
Referenční čísla: 1 +5 +9 +10 +35
Součet referenčních čísel: 60
Vypočítat kontrolní součet: 60 / 43 = 1 Zbytek 17
Kontrola číslice "H" (Referenční číslo 17)

Referenční čísla:
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 %


Příklad kódu pro výpočet kontrolního součtu podle Modulo 43

Kód Excel VBA pro výpočet kontrolního součtu podle Modulo 43, např. pro kód HIBC:
' 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 automaticky vypočítává kontrolní číslice pro čárové kódy.
Není nutné tyto kontrolní číslice počítat nebo přidávat ručně. Tato dokumentace je uvedena pouze pro úplnost.
Výpočet kontrolního součtu podle Modulo 47:
Kontrolní znak podle Modulo 47 se používá např. v kódu 93.

Kód 93 používá 2 kontrolní součty, tzv. kontrolní součet C a tzv. kontrolní součet K. Oba se počítají podle stejného principu. Kontrolní součet K však obsahuje také kontrolní součet C.

Během výpočtu jsou nejprve přiřazena referenční čísla všem znakům kódu. Každé číslice v kódu je přiřazena váha a byla přírůstková odzadu. V souladu s tím má poslední pozice váhu 1, předposlední pozice váhu 2 a tak dále. Referenční čísla se v každém případě násobí váhou. Výsledné individuální výsledky se sčítají.

Tato celková částka se nyní vydělí 47. Zbytek tohoto oddílu odpovídá kontrolnímu součtu, který je kódován jako znak pomocí referenčního čísla.

K kontrolní součet se určuje stejným způsobem. Tentokrát se však jako základ používá řetězec znaků kódu – stejně jako u prvního kontrolního součtu – plus kontrolní součet C. První stanovený kontrolní součet je zahrnut do výpočtu druhého kontrolního součtu.

Příklad výpočtu:

Checksum with Modulo47

Referenční čísla 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