4.2
Binární (dvojkové) kódy
Kód znaku, znakového řetězce je jiný zápis, který s původním zápisem jednoznačně koresponduje. Kód je tedy spojen s jednoznačným kódováním, tj. s jednoznačným předpisem pro převod na jiný zápis. Při kódování znaků představuje kód jednoznačné přiřazení mezi znaky dvou různých abeced nebo znakových sad. Znaková sada (resp. abecedou) desítkové číselné soustavy je sada znaků 0, 1,2,3,4,5,6,7,8,9. Dvojková soustava vystačí se dvěma znaky 0, 1. Převod desítkového čísla na dvojkové číslo (kódované s váhami 2n) je jednou z možností binárního zakódování desítkového čísla. Binárních kódů existuje velké množství.
4.2.1
Kód BCD
BCD (Binary-Coded-Decimal) kód převádí (kóduje) jednotlivé číslice, tedy nepřevádí číslo jako celek. Kód BCD je kódem jednotlivých číslic dekadického čísla. Dekadická číslice je vyjádřena čtyřmístným binárním kódem, tzv. tetrádou binárních znaků. Kód BCD zachovává strukturu dekadického čísla, tj. při změně jedné číslice se změní jen odpovídající tetráda. Váhy jednotlivých bitů se při posunu o jednu tetrádu změní deseti násobně.
+
36. Příklad zápisu čísla v kódu BCD
Obr. 36. Příklad zápisu čísla v kódu BCD
4.2.2
Váhové kódy
Každému místu binárního váhového kódu je přiřazena určitá váha. Příkladem je nejnižší tetráda BCD kódu s váhami 8, 4, 2, 1.
Aikenův kód
Na obrázku je v tabulce uveden Aikenův kód s váhami 3, 3, 2, 1. Kód je zvolen tak, že začíná 0 (0000) a končí 9 (1111). Tento kód má tu vlastnost, že inverzí bitů přejde binární kód desítkové číslice na binární kód devítkově komplementární číslice. (9~0, 8~1, 7~2, 6~3, 5~4)
+
37. Aikenův kód-kódovací tabulka
Obr. 37. Aikenův kód-kódovací tabulka
4.2.3
Neváhové kódy
Pozicím v neváhovém kódu nejsou přiřazeny žádné váhy, které by umožňovaly výpočet hodnoty čísla podle těchto vah. Neváhové kódy nejsou přizpůsobeny požadavkům početních operací, ale častěji požadavkům na přenos signálů.
Grayův kód má tu vlastnost, že se kódy dvou sousedních znaků (např. po sobě jdoucích čísel) liší jen v jednom znaku (bitu). Uvedená vlastnost má velký význam v případě, je-li kód odečítán z kódového pravítka nebo kódového kotouče jako údaj polohy části stroje. Při nepřesném odečtu (sběracím kontaktem nebo optickým snímačem) na hranici dvou kódů může dojít jen k chybě rovné rozdílu dvou sousedních čísel. Kdyby se měnily např. dva bity současně a byla by na hranici zaznamenána jen změna jednoho z nich, mohlo by dojít k velké chybě. V případě použití kódu BCD 8-4-2-1 by docházelo při přechodu mezi čísly 7 a 8 (tj. 0111 a 1000) ke změně na čtyřech pozicích současně a nepatrně posunuté čidlo ve stopě s největší vahou by mohlo způsobit na krátký okamžik čtení čísla 15 namísto čísla 7. Po sejmutí kódu je však výhodné pro další zpracování v řídicím systému převést zápis čísla z Grayova kódu do binárního kódu nebo kódu BCD.
+
38. Grayův kód - kódovací tabulka
Obr. 38. Grayův kód - kódovací tabulka
4.2.4
Detekční kódy
Detekční kódy rozpoznají (detekují) chyby (některé), které vzniknou při přenosu informace. Detekční kódy patří společně s korekčními (samo-opravnými) kódy k bezpečnostním kódům a vyžadují určitou redundanci tj. nadbytečnost. Nejběžnějším kontrolním mechanismem je použití paritního bitu, který doplňuje kód znaku, např. čtyřbitový kód na 5bitový nebo 7bitový kód na 8bitový. Je-li např. stanovena lichá parita, musí mít paritní bit takovou hodnotu, aby kompletní kód včetně paritního bitu měl lichý počet jedniček. Je-li stanovena sudá parita, musí být celkový počet jedniček sudý. Paritní kontrola po přenosu indikuje, zda došlo ke změně jednoho (nebo jiného lichého počtu) bitu. Pravděpodobnost dvou chyb je mnohem menší.
+
39. Detekční kód-pravdivostní tabulka
Obr. 39. Detekční kód-pravdivostní tabulka