algorytm.org

BC412



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?

BC412
Ocena użytkowników:***** / 6
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 20 listopada 2019 20:30

Kod kreskowy BC412 został opracowany w 1988 roku przez Computer Identics oraz IBM. W 1992 roku został on ustanowiony przez organizację SEMI (the Semiconductor Equipment and Materials International) jako standard oznaczania półprzewodnikowych wafli krzemowych (SEMI T1-95). Kod BC412 jest kodem jednej szerokości (ang. single-width code), oznacza to, że wszystkie paski są tej samej szerokości. Kodowanie odbywa się poprzez zmienną odległość pustego miejsca między kolejnymi paskami. Sprawia to, że kod ten doskonale nadaję się do zastosowania na mało kontrastowych powierzchniach.

Nazwa pochodzi kodowania pochodzi od:
  • BC - ang: Binary Code kod binarny,
  • cyfry 412 oznaczają sposób kodowania:
    każdy znak/cyfra kodowana jest w postaci 4 pasków i odległości między nimi,
    każdy znak/cyfra kodowana jest w sumie poprzez 12-krotność ciemnego paska
Kodem BC412 można zakodować cyfry 0-9, a także wielkie litery (oprócz 'O') - w praktyce literę 'O' zastępuje się zerem. Kod kreskowy ma następującą strukturę:
  • znak start - kodowany jako pasek a następnie pusta przestrzeń szerokości dwóch pasków
  • kolejne znaki zakodowane zgodnie z tabelką poniżej
  • cyfra kontrolna zakodowana zgodnie z tabelką poniżej
  • znak stop - kodowany jako pasek
ZnakKodowanieWartość
01, 1, 1, 50
11, 1, 2, 415
21, 1, 3, 317
31, 1, 4, 229
41, 1, 5, 111
51, 2, 1, 433
61, 2, 2, 319
71, 2, 3, 221
81, 2, 4, 18
91, 3, 1, 32
A1, 3, 2, 27
B1, 3, 3, 125
C1, 4, 1, 220
D1, 4, 2, 122
E1, 5, 1, 19
F2, 1, 1, 430
G2, 1, 2, 33
H2, 1, 3, 26
I2, 1, 4, 127
J2, 2, 1, 316
K2, 2, 2, 224
L2, 2, 3, 14
M2, 3, 1, 234
N2, 3, 2, 112
P2, 4, 1, 132
Q3, 1, 1, 318
R3, 1, 2, 21
S3, 1, 2, 214
T3, 2, 1, 213
U3, 2, 2, 126
V3, 3, 1, 15
W4, 1, 1, 231
X4, 1, 2, 128
Y4, 2, 1, 123
Z5, 1, 1, 110
Kodowanie w tabeli powyżej oznacza, szerokość przestrzeni pomiędzy kolejnymi paskami. Czyli cyfra zero kodowana jest jako:
pasek, następnie przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 1 paska, następnie pasek i przestrzeń pusta szerokości 5 pasków.
Całość w sumie zajmuje tak jak napisane wcześniej 12-krotność szerokości paska (4 paski + 8 krotność paska w postaci pustych przestrzeni pomiędzy).

Suma kontrolna obliczana jest jako suma wartości znaków podanych w tabeli powyżej podzielona następnie modulo 35.

Przykład:

Zakodujmy więc napis ALG
Najpierw znak start, kodowany jako pasek a następnie przestrzeń szerokości dwóch pasków
Dalej kolejne litery: A - kodowane jako pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
L - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 3 pasków i pasek i przestrzeń szerokości 1 paska
G - kodowane jako pasek i przestrzeń szerokości 2 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 3 pasków
Teraz cyfra kontrolna: Cuma wartości kolejnych liter mod 35 = 7 + 4 + 3 mod 35 = 14 mod 35 = 14. Wartość 14 ma litera 'S' i to jest nasza cyfra kontrolna, którą dodajemy do kodu, czyli kodujemy:
pasek i przestrzeń szerokości 3 pasków, pasek i przestrzeń szerokości 1 paska, pasek i przestrzeń szerokości 2 pasków i pasek i przestrzeń szerokości 2 pasków
I na końcu pasek znak stop, czyli ostatni pasek. Całość narysowana wygląda następująco:
Wynikowy kod BC412

Przykład w JavaScript:

BC412

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Microsoft Visual Studio 2010
.cs
.cs
***** / 0
Tomasz LubińskiJava
.java
.java
***** / 0
Tomasz LubińskiJavaScript
.js
.js
***** / 0
 
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: 21 listopada 2019 07:34
Dodaj komentarz