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
| 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

