algorytm.org

Standard Code 25

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?

Standard Code 25
Ocena użytkowników:***** / 4
SłabyŚwietny 
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).

    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

Sposób kodowaniaCyfry kodowane są następująco (N - oznacza pasek wąski, W - oznacza pasek szeroki):
CyfraKodKod kreskowy
0NNWWN10101110111010
1WNNNW11101010101110
2NWNNW10111010101110
3WWNNN11101110101010
4NNWNW10101110101110
5WNWNN11101011101010
6NWWNN10111011101010
7NNNWW10101011101110
8WNNWN11101010111010
9NWNWN10111010111010

    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:
Standard Code 25

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
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:39
Dodaj komentarz