algorytm.org

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

Interleaved Code 25
Ocena użytkowników:***** / 5
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 30 marca 2007 19:45

Przeplatany kod 2 z 5 (ang. Interleaved 2 of 5), w przeciwieństwie do kodu Standard 2 of 5, z którego się wywodzi, jest kodem o dużej gęstości. Zwiększenie pojemności kodu osiągnieto tutaj poprzez zakodowanie cyfr zarówno poprzez paski jak i przerwy pomiędzy nimi, podczas gdy Standard 2 of 5, kodował informacje jedynie poprzez szerokość paska. Własność ta wymusza na nas kodowanie zawsze parzystej liczby cyfr. Nazwa przeplatany bierze się z faktu iż pierwsza cyfra kodowana jest przez pierwsze 5 pasków podczas gdy druga cyfra kodowana jest poprzez 5 przerw pomiędzy tymi paskami, trzecia przez kolejne 5 pasków, czwarta przez 5 przerw pomiędzy nimi, itd... Zawsze 2 z 5 pasków i 2 z 5 przerw są szerokie, pozostałe są cienkie. Gruby pasek ma szerokość dwu-krotnie większą od paska cienkiego. Podobnie jak kod Standard 2 of 5, Interleaved 2 of 5 może być wyposażony w opcjonalną sumę kontrolną.

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

struktura koduCyfry 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: cieńki pasek, cieńka przerwa, cienki pasek, cieńka przerwa, gruby pasek, cieńka przerwa, cieńki 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 przeplatanego kodu 2 z 5:
  • Znak start kodowany jako: 1010
  • Kolejne pary cyfr zakodowane zgodnie z tabelą powyżej
  • Znak stop kodowany jako: 1101.

Przykład:

Zakodujemy liczbę: 1234567 razem z cyfrą kontrolną
Liczby kodowane są prami 12, 34, 56, 7 z cyfrą kontrolną.
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"
Znak start kodowany jest jako: 1010
Para "12" kodowana jest jako: 11010010101100
Para "34" kodowana jest jako: 11011010010100
Para "56" kodowana jest jako: 11010011001010
Para "70" kodowana jest jako: 10101001100110
Znak stop kodowany jest jako: 1101.
Wszystko razem daje nam: 1010110100101011001101101001010011010011001010101010011001101101
co w zapisie graficznym wygląda następująco:
Interleaved 2 of 5

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
***** / 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:40
Dodaj komentarz