Wpisany przez Tomasz Lubiński,
30 marca 2007 14:27
Standard Code 25 - standardowy kod 2 z 5 - (ang. Standard 2 of 5) zwany inaczej przemysłowym kodem 2 z 5 (ang. Industrial 2 of 5) jest kodem kreskowym o bardzo małej gęstości wprowadzonym już w roku 1960. Pozwala on na przechowywanie dowolnej liczby cyfr. Kod ten wyposażony został w opcjonalną sumę kontrolną. Pojedyńcza cyfra kodowana jest przez 5 pasków, z których 2 są zawsze grube (ang. wide), a pozostałe cienkie (ang. narrow) - stąd nazwa kodowania: 2 z 5. Gruby pasek ma szerokość trzy-krotnie większą od paska cienkiego. Odstępy pomiędzy kodującymi paskami są zawsze takie same (mają szerokość paska cienkiego). Bardziej efektywną wersją standardowego kodu 2 z 5 jest Przeplatany kod 2 z 5 (ang. Interleaved 2 of 5).
Cyfry kodowane są następująco (N - oznacza pasek wąski, W - oznacza pasek szeroki):
Zakodujemy liczbę: 1234567
Znak start kodowany jest jako: 11011010
Cyfra "1" kodowana jest jako: 11101010101110
Cyfra "2" kodowana jest jako: 10111010101110
Cyfra "3" kodowana jest jako: 11101110101010
Cyfra "4" kodowana jest jako: 10101110101110
Cyfra "5" kodowana jest jako: 11101011101010
Cyfra "6" kodowana jest jako: 10111011101010
Cyfra "7" kodowana jest jako: 10101011101110
Teraz obliczmy sumę kontrolną. (6 + 4 + 2) + (7 + 5 + 3 + 1) * 3 = 12 + 16 * 3 = 60 mod 10 = 0, 10 - 0 = 10, 10 mod 10 = 0, czyli jako cyfry kontrolnej uzyjemy "0" które kodowana jest jako: 10101110111010
Znak stop kodowany jako: 11010110
Wszystko razem daje nam: 11011010111010101011101011101010111011101110101010101011101011101110101110101010111011101010101010111011101010111011101011010110
co w zapisie graficznym wygląda następująco:
- Obliczanie cyfry kontrolnej (zakładamy, że cyfra znajdująca się najbardziej na prawo jest na parzystej pozycji):
- Sumujemy wszystkie cyfry na pozcyjach nieparzystych
- Sumujemy wszystkie cyfry na pozcyjach 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
Cyfry kodowane są następująco (N - oznacza pasek wąski, W - oznacza pasek szeroki):
Cyfra | Kod | Kod kreskowy |
0 | NNWWN | 10101110111010 |
1 | WNNNW | 11101010101110 |
2 | NWNNW | 10111010101110 |
3 | WWNNN | 11101110101010 |
4 | NNWNW | 10101110101110 |
5 | WNWNN | 11101011101010 |
6 | NWWNN | 10111011101010 |
7 | NNNWW | 10101011101110 |
8 | WNNWN | 11101010111010 |
9 | NWNWN | 10111010111010 |
- Struktura standardowego kodu 2 z 5:
- Znak start kodowany jako: 11011010
- Kolejne cyfry zakodowane zgodnie z tabelą powyżej
- Opcjonalna suma kontrolna
- Znak stop kodowany jako: 11010110.
Przykład:
Zakodujemy liczbę: 1234567
Znak start kodowany jest jako: 11011010
Cyfra "1" kodowana jest jako: 11101010101110
Cyfra "2" kodowana jest jako: 10111010101110
Cyfra "3" kodowana jest jako: 11101110101010
Cyfra "4" kodowana jest jako: 10101110101110
Cyfra "5" kodowana jest jako: 11101011101010
Cyfra "6" kodowana jest jako: 10111011101010
Cyfra "7" kodowana jest jako: 10101011101110
Teraz obliczmy sumę kontrolną. (6 + 4 + 2) + (7 + 5 + 3 + 1) * 3 = 12 + 16 * 3 = 60 mod 10 = 0, 10 - 0 = 10, 10 mod 10 = 0, czyli jako cyfry kontrolnej uzyjemy "0" które kodowana jest jako: 10101110111010
Znak stop kodowany jako: 11010110
Wszystko razem daje nam: 11011010111010101011101011101010111011101110101010101011101011101110101110101010111011101010101010111011101010111011101011010110
co w zapisie graficznym wygląda następująco:
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 |
Poprawiony: 29 sierpnia 2012 18:39