StartStruktury danychKody kreskoweCode 11 (USD-8)
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Code 11 (USD-8)
Ocena użytkowników:++++- / 2
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
wtorek, 16 stycznia 2007 14:20
Code 11, zwany również USD-8 pozwala zakodować zestaw 11 znaków - stąd jego nazwa. Są to cyfry 0-9 oraz znak myślnika '-'. Code 11 jest kodem o dużej gęstości pozwalającym na zakodowanie dowolnej liczby znaków. Stosowany jest głównie do oznaczania urządzeń telekomunikacyjnych. Znaki kodowane są następująco:

ZnakWartośćKod
00101011
111101011
221001011
331100101
441011011
551101101
661001101
771010011
881101001
99110101
- (myślnik)10101101
Start/Stop-1011001


Pomiędzy kodowanymi znakami wprowadza się pojedyńczy odstęp o szerokości wąskiego paska/odstępu.

    Code 11 ma następującą strukturę:
  • Znak start/stop
  • Kodowany ciąg
  • Znak kontrolny 'C'
  • Znak kontrolny 'K', jeżeli długość kodowanego ciągu jest większa od 9
  • Znak start/stop


Obliczanie sumy kontrolnej 'C':
Należy obliczyć sumę ważoną wartości wszystkich kodowanych znaków przy czym znak najbardziej na prawo ma wagę 1, drugi od prawej 2, trzeci 3, itd aż do 10, znak 11 ma znów wagę 1. Wagi zatem zmieniają się od 1 do 10. Sumę ważoną dzielimy modulo 11 znak o wartości tego wyniku dodajemy na końcu kodowanego ciągu.

Obliczanie sumy kontrolnej 'K':
Należy obliczyć sumę ważoną wszystkich kodowanych znaków (łącznie z sumą kontrolną 'C') przy czym znak najbardziej na prawo ma wagę 1, drugi od prawej 2, trzeci 3, itd aż do 9, znak 10 ma znów wagę 9. Wagi zmieniają się zatem od 1 do 9. Sumę ważoną dzielimy modulo 11 znak o wartości tego wyniku dodajemy na końcu kodowanego ciągu.

Przykład:
Zakodujmy ciąg 12345-6789
Najpierw znak start/stop: 1011001
Znak 1 kodujemy: 1101011
Znak 2 kodujemy: 1001011
Znak 3 kodujemy: 1100101
Znak 4 kodujemy: 1011011
Znak 5 kodujemy: 1101101
Znak - kodujemy: 101101
Znak 6 kodujemy: 1001101
Znak 7 kodujemy: 1010011
Znak 8 kodujemy: 1101001
Znak 9 kodujemy: 110101
Suma kontrolna 'C' = 10 * 1 + 9 * 2 + 8 * 3 + 7 * 4 + 6 * 5 + 5 * 10 + 4 * 6 + 3 * 7 + 2 * 8 + 1 * 9 = 10 + 18 + 24 + 28 + 30 + 50 + 24 + 21 + 16 + 9 = 230 mod 11 = 10, czyli użyjemy znaku '-' kodowanego jako: 101101
Kodowany ciąg jest dłuższy niż 9 znaków dlatego obliczymy jeszcze sumę kontrolną 'K' = 2 * 1 + 1 * 2 + 9 * 3 + 8 * 4 + 7 * 5 + 6 * 10 + 5 * 6 + 4 * 7 + 3 * 8 + 2 * 9 + 1 * 10 = 2 + 2 + 27 + 32 + 35 + 60 + 30 + 28 + 24 + 18 + 10 = 268 mod 11 = 4, czyli użyjemy znaku '4' kodowanego jako: 1011011
I na końcu znak start/stop: 1011001
Wszystko to:
1011001 1101011 1001011 1100101 1011011 1101101 101101 1001101 1010011 1101001 110101 101101 1011011
zapisane w wersji graficznej wygląda następująco:
Code 11 (USD-8)



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C/C++ Borland Builder 6
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Tomasz Lubiński Delphi/Pascal Borland Delphi 5
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++++- / 2
Tomasz Lubiński Java
Implementacja w Java
Implementacja w 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: poniedziałek, 31 maja 2010 18:47

Komentarze

 
photo
0 # darek 2009-12-07 23:32
Przydało się .

---
alejka.pl
Odpowiedz | Odpowiedz z cytatem | Cytować
 

Dodaj komentarz

Kod antysapmowy
Odśwież