Wpisany przez Tomasz Lubiński,
27 grudnia 2005 19:04
Kod EAN-2 jest kodem uzupełniającym kod EAN-8, EAN-13, UPC-A bądź UPC-E. Nigdy nie występuje on sam a jedynie w parze z którymś ze wspomnianych. Często zdarza się, że przy jego pomocy oznacza się kolejny numer miesięcznika w roku. Kod kreskowy EAN-2 składa się z 20 białych i czarnych prążków opisujących dodatkowe dwie cyfry. Przyjmujemy, że 1 oznacza pasek ciemny, a 0 oznacza pasek jasny.
*kodowanie prawostronne nie jest używane dla kodu EAN-2
Czy w kodowaniu lewostronnym wybrać kodowanie parzyste czy nieparzyste decyduje suma kontrolna. Jest ona w ten sposób kodowana w sposób niejawny. Suma kontrolna kodu EAN-2, jest liczbą jaką tworzy dany kod podzieloną przez modulo 4. Jaki sposób kodowania wybrać w zależności od wartości sumy kontrolnej rozpisane jest w tabeli poniżej (N - kodowanie nieparzyste, P - kodowanie parzyste).
Zbudujemy teraz kod kreskowy dla kodu 05
Dzielimy kod modulo 4 w celu obliczenia sumy kontrolnej.
05 mod 4 = 1
Z tabeli sposobu kodowania dodatkowych cyfr odczytujemy, że dla sumy kontrolnej równej 1, pierwszą cyfrę kodujemy nieparzyście, natomiast drugą przyście.
Zatem gotowy kod kreskowy to:
10110001101010111001
Co po zapisaniu w wersji graficznej wygląda następująco (obliczony kod EAN-2 uzupełniono poniżej kodem EAN-13, gdyż jak wspomniano już EAN-2 nigdy nie występuje sam, a jedynie jako uzupełnienie innych kodów):
- Kod kreskowy EAN-2 ma następującą strukturę:
- lewe paski ochronne (ang. start sentinel) kodowane są jako: 1011
- cyfra 1 kodowana jest lewostronnie
- separator cyfr kodowany jako: 01
- cyfra 2 kodowana jest lewostronnie
cyfra | kodowanie lewostronne | kodowanie prawostronne* | |
nieparzyste | parzyste | ||
0 | 0001101 | 0100111 | 1110010 |
1 | 0011001 | 0110011 | 1100110 |
2 | 0010011 | 0011011 | 1101100 |
3 | 0111101 | 0100001 | 1000010 |
4 | 0100011 | 0011101 | 1011100 |
5 | 0110001 | 0111001 | 1001110 |
6 | 0101111 | 0000101 | 1010000 |
7 | 0111011 | 0010001 | 1000100 |
8 | 0110111 | 0001001 | 1001000 |
9 | 0001011 | 0010111 | 1110100 |
Czy w kodowaniu lewostronnym wybrać kodowanie parzyste czy nieparzyste decyduje suma kontrolna. Jest ona w ten sposób kodowana w sposób niejawny. Suma kontrolna kodu EAN-2, jest liczbą jaką tworzy dany kod podzieloną przez modulo 4. Jaki sposób kodowania wybrać w zależności od wartości sumy kontrolnej rozpisane jest w tabeli poniżej (N - kodowanie nieparzyste, P - kodowanie parzyste).
Suma kontrolna | Dodatkowa cyfra | |
1 | 2 | |
0 | N | N |
1 | N | P |
2 | P | N |
3 | P | P |
Przykład:
Zbudujemy teraz kod kreskowy dla kodu 05
Dzielimy kod modulo 4 w celu obliczenia sumy kontrolnej.
05 mod 4 = 1
Z tabeli sposobu kodowania dodatkowych cyfr odczytujemy, że dla sumy kontrolnej równej 1, pierwszą cyfrę kodujemy nieparzyście, natomiast drugą przyście.
- lewe paski ochronne (ang. start sentinel) kodowane są jako: 1011
- 1 cyfra to 0, kodujemy ją lewostronnie nieparzyście: 0001101
- separator cyfr: 01
- 2 cyfra to 5, kodujemy ją lewostronnie parzyście: 0111001
Zatem gotowy kod kreskowy to:
10110001101010111001
Co po zapisaniu w wersji graficznej wygląda następująco (obliczony kod EAN-2 uzupełniono poniżej kodem EAN-13, gdyż jak wspomniano już EAN-2 nigdy nie występuje sam, a jedynie jako uzupełnienie innych kodów):
Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Microsoft Visual Studio 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 1 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 2 |
Tomasz Lubiński | Java | .java | .java | ***** / 2 | |
Tomasz Lubiński | JavaScript | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | .js | .js | ***** / 0 |
Poprawiony: 28 sierpnia 2012 20:22