algorytm.org

ITF-14



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

ITF-14
Ocena użytkowników:***** / 12
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 23 września 2007 23:30

ITF-14 to zapisany przy pomocy kodu kreskowego Interleaved 2 of 5 kod EAN-14. Przeplatany kod 2 z 5 może zapisać tylko parzystą liczbę cyfr, w kodzie EAN-14 jest ich 14, a więc ten wymóg jest spełniony. Dodatkowo należy wspomnieć, że sposób obliczania sumy kontrolnej dla kodu EAN-14 oraz kodu kreskowego Interleaved 2 of 5 jest taki sam. W kodzie tym nieparzyste cyfry kodowane są za pomocą różnej szerokości pasków, a cyfry parzyste za pomocą różnej szerokości odstępów między nimi. Tabela kodowania przedstawiona jest poniżej. Gruby pasek ma szerokość dwu-krotnie większą od paska cienkiego.
Sposob kodowaniaCyfry kodowane są następująco (N - oznacza pasek/przerwę wąską, W - oznacza pasek/przerwę szeroką):
CyfraKod
0NNWWN
1WNNNW
2NWNNW
3WWNNN
4NNWNW
5WNWNN
6NWWNN
7NNNWW
8WNNWN
9NWNWN


Cyfry kodowane są parami, pierwsza cyfra w parze kodowana jest za pomocą pasków, druga w parze za pomocą przerw. Zatem para 47 będzie zakodowana następująco: 4 kodowane jest: NNWNW, 7 kodowane jest NNNWW, biorąc szerokość pasków z 4 a szerokość przerw z 7 otrzymamy: cienki pasek, cienka przerwa, cienki pasek, cienka przerwa, gruby pasek, cienka przerwa, cienki pasek, gruba przerwa, gruby pasek, gruba przerwa, co zapisać możemy następująco: 1 0 1 0 11 0 1 00 11 00.

    Struktura kodu ITF-14:
  • Znak start kodowany jako: 1010
  • Kolejne pary cyfr kodu EAN-14 zakodowane zgodnie z tabelą powyżej
  • Znak stop kodowany jako: 1101.

    Obliczanie cyfry kontrolnej przebiega następująco (zakładamy, że cyfra znajdująca się najbardziej na prawo (nie licząc cyfry kontrolnej) jest na parzystej pozycji):
  • Sumujemy wszystkie cyfry na pozycjach nieparzystych
  • Sumujemy wszystkie cyfry na pozycjach parzystych i mnożymy wynik razy 3
  • Dodajemy do siebie obie sumy
  • Wynik dzielimy mod 10, odejmujemy go od 10 i znów dzielimy mod 10

Przykład:

Zakodujemy następujący kod EAN-14: 25916485101318
obliczmy sumę kontrolną. (5 + 1 + 4 + 5 + 0 + 3) + (2 + 9 + 6 + 8 + 1 + 1 + 1) * 3 = 18 + 28*3 = 18 + 84 = 102, 102 mod 10 = 2, 10 - 2 = 8, 8 mod 10 = 8, czyli cyfra kontrolna powinna równać się 8, patrzymy na ostatnią cyfrę i rzeczywiście jest to 8, zatem podany kod EAN-14 jest prawidłowy.
Przejdźmy teraz do zakodowania go za pomocą kodu kreskowego Interleaved 2 of 5, tak by otrzymać ITF-14.
Znak start kodowany jest jako: 1010
Para "25" kodowana jest jako: 10011010010110
Para "91" kodowana jest jako: 10011010110100
Para "64" kodowana jest jako: 10110110010100
Para "85" kodowana jest jako: 11001010011010
Para "10" kodowana jest jako: 11010100100110
Para "13" kodowana jest jako: 11001001010110
Para "18" kodowana jest jako: 11001010100110
Znak stop kodowany jest jako: 1101.
Wszystko razem daje nam: 101010011010010110100110101101001011011001010011001010011010110101001001101100100101011011001010 1001101101
co w zapisie graficznym wygląda następująco:
ITF-14

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Microsoft Visual Studio 2010
.cs
.cs
***** / 0
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 2
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 2
Tomasz LubińskiJava
.java
.java
***** / 2
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 29 sierpnia 2012 18:41
Dodaj komentarz