Zobrazení dat Cíl kapitoly: Cílem této kapitoly je sezn{mit čten{ře se způsoby z{pisu dat (čísel, znaků, řetězců) v počítači. Proto jsou zde postupně vysvětleny číselné soustavy, způsoby kódov{ní české abecedy. V n{sledujících lekcích je uveden způsob z{znamu znaků a řetězců, d{le z{znam celých a re{lných čísel. V poslední lekci budou n{sledovat z{kladní fakta o šifrov{ní. Klíčové pojmy: ASCII, BCD, Číselné soustavy, detekřní kód, dvojková soustava, dvojkový doplněk, float, hexadecimální soustava, integer, ISO latin 2, kódy, KOI-8, osmičková soustava, parita, přepočty, přímý kód, samoopravný kód, word,
Část 1 - znaky Úvod Počítače i v prvním desítiletí 21. století počítají st{le ve dvojkové soustavě. Tento systém n{m umožňuje pracovat i s poměrně velmi zašuměným sign{lem. Všechny údaje zapsané do registrů, pamětí počítatače jsou tedy uloženy ve formě odpovídající dvojkové soustavě. Zobrazení dat, zad{v{ní dat a dnes i přenosy dat mohou ale být v jiných soustav{ch, které se pro uložení převedou do dvojkové soustavy. V těchto lekcích zobrazení dat se budeme zabývat vlastním tvarem uložení jednotlivých typů dat. Pr{ci v jednotlivých číselných soustav{ch a převodů bude probr{no jen u méně zn{mých postupů. Spr{vné pochopení lekcí vyžaduje znalost prvního kurzu hadware. Úvodem z{kladní pojmy
KÓDY Kód je soubor znaků a pravidel k zaznamenání a přenosu informací. Při kódování se převádí jeden soubor znaků do druhého. Zvláštní skupinou kódování je šifrování dat.
2.11.2011
1
ČÍSLICOVÉ KÓDY
Číselné soustavy V informatice se ječastěji opužívají tyto soustavy Dvojková, Šestnáctková, desítková a osmičková.
Zápis znaků Jednotlivé znaky zobrazujeme pomocí doporučeného kódování. Původní kódování anglické abecedy (a,b,c,d,…), zobrazitelných (.,?,:, …) a nezobrazitelných znaků (esc, ach, start_of_head,….) bylo a je pomocí 7mi bitového ASCII kódu. Dnes se používá rozšířený8mi bitový ASCII kód zahrnující národní abecedy. K identifikaci rozšíření je třeba předem specifikovat kódování znaků v rozšíření (hodnot 128 až 255). Dnes se používá zejména 16ti bitový UNICODE, nebo UTF-8, která pro znaky základního ASCII kódu používá kód délky 1B, pro speciální znaky národních abeced 2 resp. 3 bajty kódu UTF-8. Dnešní počítače při počítání se znaky provádíjejich dočasnou konverzi a to 8mi bitových znaků na 16ti bitové, resp 8mi a 16ti bitových na 32 bitové. Výsleddky se ukládají v původní délce.
Čeština Znaky lze zobrazit v ASCII kódu (základní je jen 7mi bitový, rozšířený o národní abecedy je 8mi bitový) nebo v16ti bitovým UNICODE nebo s proměnným počtem bytů (1 až 3) - UTF-8 a to jak 8mi, tak i 16 ti bitových celků (1 až 2) – UTF-16 nebo 32 bitovým UTF-32. Rozšířený ASCII (8mi bitový) KOI-8 (kod dja obmeny informacii) - Znaky s interpunkcí nejsou uspořádány abecedně, takže třídění běžnými prostředky je nemožné. Kód Kamenických překódovaná ASCII tabulka tak, aby znaky při nezapnutém kódu tvarově co nejvíce se přibližovaly českým znakům. Latin II neboli DOS 852 - jsou ponechány řecké znaky, čeština využívá i semigrafických znaků. ISO-Latin II neboli ISO 8859-2 1250 používající Windows EBCDIC 8mi bitový kód pro sálové počítače. Přiřazování kódů není náplní tohoto kurzu. Zájemcům doporučujeme Wikipedii nebo www.unicode.org
2.11.2011
2
ČÍSLICOVÉ KÓDY
Zápisy řetězců Řetězce znaků jsou zapisovány jako posloupnosti znaků obvykle zakončené bajtem nul. Tím je specifikována jejich délka. V jazyce pascal byl požadavek na řetězce poněkud jiný. Každý řetězec začínal dvojkovým číslem (v přímém kódu) označujícím délku řetězce. Tím ale délka řetězce je omezena jen na 255 znaků.
Další pojmy Zápis znaků i čísel tedy mohou být délky Byte - 1B – tj. 8b 7
0
Velikost
Kde bit 7 je MSB – nejvýznamnější bit ( zkratka MSB z anglického Most Significant Bit) tj. bit s nejvyšší hodnotou v binárním vyjádření čísla, Bit 0 LSB - Least Significant Bit – bit s nejnižší hodnotou Word –slovo – jeho délka se řídí typem procesorů (sběrnic a registrů) a bývá 2B nebo 4B Double word - dvojité slovo – 32bitů nebo 64 bitů Little Endian – při seriové komunikaci je posílán nejdříve nenižšíí bit a byte, pak postupně vyššího řádu. Při zápisu do paměti je zapsán na nejnižší adrese nejnižší bajt. Big Endian – při seriové komunikaci se zasílá bit a byte na nejvyššího řádu, pak postupně ostatní. Při zápisu v paměti je zapsán nejvyšší bajt na nejnižší adrese.
Detekční kódy umožňují detekci chyb. Základní detekční kódy detekují jen jednu chybu. nejčastější a nejjednodušší je parita. Parita je přidaný 9. bit doplňující součet zprávy (bajtu) na sudý počet jedniček - sudá (even) parita nebo lichý počet jedniček – lichá (odd) parita.
Opravné kódy opravují zjištěnou chybu. Lze použít křížovou paritu pro odhalení jedné chyby, nebo složitější polynomické kódy jako je CRC - cyclic redundancy check. 2.11.2011
3
ČÍSLICOVÉ KÓDY
ECC - error corecting code Úkoly: 1. Co je to znak ? 2. Proč musí tabulka ASCII zahrnovat zobrazitelné i nezobrazitelné znaky? 3. Které znaky jsou nezobrazitelné, uveďte další příklady. 4. Jaký je rozdíl mezi detekčním a opravným kódem? 5. Určete hodnotu sudé parity bro bajt 0F3H. 6. Jak se změní hodnota paritního bitu, nastanou-li v bajtu 2 chyby? 7. Jakou dvojkovou hodnotu má MSB a LSB u dvoubajtového a čtyřbajtového slova? 8. Jaká je hodnota MSB u rozšiřujících znaků národních abeced v ASCII kódu? 9. Musí se u UNICODE uvádět druh národní abecedy?
2.11.2011
4
ČÍSLICOVÉ KÓDY
2.11.2011
5
ČÍSLICOVÉ KÓDY