Wpisany przez Tomasz Lubiński,
27 grudnia 2005 19:11
Kod EAN-5, podobnie jak 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. Dla książek w języku angielskim kod EAN-5 używany jest jako kod ceny. I tak początkowo pierwsza cyfra oznaczała walutę (patrz tabela poniżej), 4 kolejne cyfry oznaczały cenę pomnożoną razy 100. Wynika z tego że kod: 51234 oznaczał cenę: 12.34$. Kod o końcówce 9999 oznaczał cenę 99.99 lub większą.
Ze względu na rosnącą liczbę tytułów, których cena jest większa niż $100 w we wrzesniu 2004 roku postanowiono wprowadzić nowe reguły kodowania ceny poprzez EAN-5. Nowe reguły przedstawia tabela poniżej:
Kod kreskowy EAN-5 składa się z 47 białych i czarnych prążków opisujących dodatkowych pięć cyfr. Przyjmujemy, że 1 oznacza pasek ciemny, a 0 oznacza pasek jasny.
*kodowanie prawostronne nie jest używane dla kodu EAN-5
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-5 to suma cyfr nieparzystych pomnożona razy 3 plus suma liczb parzystych pomnożona razy 9 (zakładamy, że cyfry liczymy od 1), podzieloną przez modulo 10. 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 72077
Suma kontrolna wynosi: 7*3+ 2*9 + 0*3 + 7*9 + 7*3 = 21 + 18 + 0 + 63 + 21 = 123.
123 mod 10 = 3
Z tabeli sposobu kodowania dodatkowych cyfr odczytujemy, że dla sumy kontrolnej równej 3, pierwszą cyfrę kodujemy parzyście, drugą, trzecią oraz czwartą nieparzyście a następnie piątą znów parzyście.
Zatem gotowy kod kreskowy to:
10110010001010010011010001101010111011010010001
Co po zapisaniu w wersji graficznej wygląda następująco (obliczony kod EAN-5 uzupełniono poniżej kodem EAN-13, gdyż jak wspomniano już EAN-5 nigdy nie występuje sam, a jedynie jako uzupełnienie innych kodów):
pierwsza cyfra | waluta |
0 | GBP - funt brytyjski |
1 | GBP - funt brytyjski |
3 | $ - dolar australijski |
4 | $ - dolar nowozelandzki |
5 | $ - dolar amerykański |
6 | $ - dolar kanadyjski |
9 | zarezerwowane dla użytku wewnętrznego |
Ze względu na rosnącą liczbę tytułów, których cena jest większa niż $100 w we wrzesniu 2004 roku postanowiono wprowadzić nowe reguły kodowania ceny poprzez EAN-5. Nowe reguły przedstawia tabela poniżej:
wartość EAN-5 | interpretacja |
00000 | zarezerwowana |
00001-09999 | GBP - funt brytyjski - znaczenie bez zmian |
10000-19999 | US$100.00 - US$199.99 rozszerzony zakres dla dolara amerykańskiego |
20000-29999 | US$200.00 - US$299.99 rozszerzony zakres dla dolara amerykańskiego |
30000-39999 | US$300.00 - US$399.99 rozszerzony zakres dla dolara amerykańskiego |
40000-49999 | US$400.00 - US$499.99 rozszerzony zakres dla dolara amerykańskiego |
50000 | zarezerwowana |
50001-59998 | US$0.01 - US$99.98 czyli zgodnie z poprzednią definicją |
59999 | Cena nie jest zakodowana - oznacza cenę większą niż US$99.98 |
60000-89999 | zarezerwowana |
90000 | oznacza, że cena nie jest kodowana |
90001-99989 | zarezerwowane dla przemysłu |
99990-99999 | zarezerwowane dla NACS (National Association of College Stores) |
Kod kreskowy EAN-5 składa się z 47 białych i czarnych prążków opisujących dodatkowych pięć cyfr. Przyjmujemy, że 1 oznacza pasek ciemny, a 0 oznacza pasek jasny.
- Kod kreskowy EAN-5 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
- separator cyfr kodowany jako: 01
- cyfra 3 kodowana jest lewostronnie
- separator cyfr kodowany jako: 01
- cyfra 4 kodowana jest lewostronnie
- separator cyfr kodowany jako: 01
- cyfra 5 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-5 to suma cyfr nieparzystych pomnożona razy 3 plus suma liczb parzystych pomnożona razy 9 (zakładamy, że cyfry liczymy od 1), podzieloną przez modulo 10. 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 | 3 | 4 | 5 | |
0 | P | P | N | N | N |
1 | P | N | P | N | N |
2 | P | N | N | P | N |
3 | P | N | N | N | P |
4 | N | P | P | N | N |
5 | N | N | P | P | N |
6 | N | N | N | P | P |
7 | N | P | N | P | N |
8 | N | P | N | N | P |
9 | N | N | P | N | P |
Przykład:
Zbudujemy teraz kod kreskowy dla kodu 72077
Suma kontrolna wynosi: 7*3+ 2*9 + 0*3 + 7*9 + 7*3 = 21 + 18 + 0 + 63 + 21 = 123.
123 mod 10 = 3
Z tabeli sposobu kodowania dodatkowych cyfr odczytujemy, że dla sumy kontrolnej równej 3, pierwszą cyfrę kodujemy parzyście, drugą, trzecią oraz czwartą nieparzyście a następnie piątą znów parzyście.
- lewe paski ochronne (ang. start sentinel) kodowane są jako: 1011
- 1 cyfra to 7, kodujemy ją lewostronnie parzyście: 0010001
- separator cyfr: 01
- 2 cyfra to 2, kodujemy ją lewostronnie nieparzyście: 0010011
- separator cyfr: 01
- 3 cyfra to 0, kodujemy ją lewostronnie nieparzyście: 0001101
- separator cyfr: 01
- 4 cyfra to 7, kodujemy ją lewostronnie nieparzyście: 0111011
- separator cyfr: 01
- 5 cyfra to 7, kodujemy ją lewostronnie parzyście: 0010001
Zatem gotowy kod kreskowy to:
10110010001010010011010001101010111011010010001
Co po zapisaniu w wersji graficznej wygląda następująco (obliczony kod EAN-5 uzupełniono poniżej kodem EAN-13, gdyż jak wspomniano już EAN-5 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 | ***** / 2 |
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:24