Číselné soustavy Cílem této kapitoly je sezn{mit se se z{kladními jednotkami používanými ve výpočetní technice. Poznat číselné soustavy, kódy a naučit se převody mezi číselnými soustavami. Klíčové pojmy: Bit, Byte, číseln{ soustava, z{klad číselné soustavy, koeficient číselné soustavy, exponent, v{ha, kódy, kódové slovo, kódov{ní, dekódov{ní, šifrov{ní, znaménkový bit Z{kladní jednotka informace Z{kladní jednotkou informace je bit (b). Bit znamen{ binary digit (dvojkov{ číslice). Bit byl zvolen pro snadnější reprezentaci čísel v počítačích- stačí pouze dvě úrovně napětí elektrického sign{lu- jsou to hodnoty 0 a 1. Jednotkou kapacity paměti je Byte (B). 1B=8b Zobrazení bytu v počítači: Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0 Nejnižší řád čísla Nejmenší číslo zapsané v 1B: 0 0 0 0 0 0 0 0 Nejmenší číslo zapsané v jednom bytu m{ vždy hodnotu 0. Největší číslo zapsané v 1B: 1. 2 7 + 1. 2 6 + 1. 2 5 + 1. 2 4 + 1.2 3 + 1.2 2 + 1. 2 1 + 1. 2 0 = 1 1 1 1 1 1 1 1 = 1.128 + 1.64 + 1.32 + 1.16 + 1.8 + 1.4 + 1.2 + 1.1 = 255 Hodnota čísla v desítkové soustavě je 255. To znamen{, že do jednoho bytu lze zapsat 256 různých hodnot v rozsahu 0 až 255. Vyčíslené mocniny čísla 2 (z{kladu dvojkové soustavy) se nazývají v{hy. 24/10/2011 Číselné soustavy 1
Předpony Byte je mal{ jednotka pro vyčíslení kapacity paměťových médií, proto se používají předpony. Předpona Zkratka Převod Byty kilo k 1kB=1024B 1kB=2 10 B Mega M 1MB=1024kB 1MB=2 20 B Giga G 1GB=1024MB 1GB=2 30 B Tera T 1TB=1024GB 1TB=2 40 B Přehled číselných soustav M{me-li např. desítkové číslo 1746,32 rozepíšeme je: 1746,32= 1.10 3 + 7.10 2 + 4.10 1 + 6.10 0 +, 3.10-1 + 2.10-2 = = 1.1000 + 7.100 + 4.10 + 6.1 +, 3.1/10 + 2.1/100 tisíce stovky desítky jednotky desetiny setiny Toto jsou v{hy. Toto je desetinn{ č{rka. Číslo na prvním ř{dku je zaps{no pomocí Hornerova schématu číslo v libovolné číselné soustavě se d{ zapsat obecně ve tvaru: a. z m, kde a je koeficient číselné soustavy, tj. číslice v dané soustavě (a = 0,,z-1) z je z{klad číselné soustavy a m je mocnina (exponent) číselné soustavy je to celé číslo od - do +, kde cel{ č{st čísla m{ kladnou mocninu, desetinn{ č{st m{ z{pornou mocninu. Vždy platí z 0 = 1, kde z je celé kladné číslo a vpravo od něj je vždy desetinn{ č{rka tzn., že se jedn{ o nejnižší ř{d celého čísla. Přehled číselných soustav -Dvojkov{ (bin{rní) číseln{ soustava B: a = 0,1 z = 2 Př. 10011B = 1.2 4 + 0.2 3 + 0.2 2 + 1.2 1 + 1.2 0 = 1.16 + 0.8 + 0.4 + 1.2 + 1.1 = = 16 + 2 + 1 = 19D -Osmičkov{ (oktalov{) číseln{ soustava O: a = 0,1 7 24/10/2011 Číselné soustavy 2
z = 8 Př. 146O = 1.8 2 + 4.8 1 + 1.8 0 = 1.64 + 4.8 + 6.1 = 64 + 32 + 6 = 102D -Desítkov{ (dekadick{) číseln{ soustava D: a = 0,1 9 z = 10 -Šestn{ctkov{ (hexadecim{lní) číseln{ soustava H: a = 0,1 9,A F z = 16 Př. 1B8H = 1.16 2 + 11.16 1 + 8.16 0 = 1.256 + 11.16 + 8.1 = 256 + 176 + 1 = 433D Z uvedených příkladů je zřejmé, že jakékoliv číslo převedeme do desítkové soustavy pomocí Hornerova schématu. Tabulka číselných soustav je uvedena na další str{nce. 24/10/2011 Číselné soustavy 3
Tabulka číselných soustav Desítkové číslo Dvojkové číslo Osmičkové číslo Šestn{ctkové číslo mocniny mocniny mocniny 2 4 2 3 2 2 2 1 2 0 8 2 8 1 8 0 16 2 16 1 16 0 v{hy v{hy v{hy 16 8 4 2 1 64 8 1 256 16 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 2 0 0 0 1 0 2 2 3 0 0 0 1 1 3 3 4 0 0 1 0 0 4 4 5 0 0 1 0 1 5 5 6 0 0 1 1 0 6 6 7 0 0 1 1 1 7 7 8 0 1 0 0 0 1 0 8 9 0 1 0 0 1 1 1 9 10 0 1 0 1 0 1 2 A 11 0 1 0 1 1 1 3 B 12 0 1 1 0 0 1 4 C 13 0 1 1 0 1 1 5 D 14 0 1 1 1 0 1 6 E 15 0 1 1 1 1 1 7 F 16 1 0 0 0 0 2 0 1 0 Příklad: 16D = 10000B = 20O = 10H 24/10/2011 Číselné soustavy 4
Z uvedeného příkladu je zřejmé, že nutně musíme uv{dět označení číselné soustavy. Pozn{mka: 1. V tabulce nejsou v osmičkové a šestn{ctkové soustavě doplněny 0 ve vyšších ř{dech. 2. Z tabulky je zřejmé, že počty jednotlivých číslic v číselných soustav{ch z{visí na v{ze jednotlivých ř{dů. 3. Každ{ číseln{ soustava začín{ vždy číslem 0. 4. V tabulce je barevně vyznačený jednoduchý převod mezi dvojkovou a osmičkovou číselnou soustavou ( trojice vyznačené ve dvojkové soustavě od nejnižšího ř{du znamenají jednu osmičkovou číslici v{hy 4+2+1=7). Př. 001 011B = 13O 5. V tabulce je také vyznačený převod mezi dvojkovou a šestn{ctkovou číselnou soustavou ( čtveřice vyznačen{ ve dvojkové soustavě znamen{ jednu šestn{ctkovou číslici v{hy 8+4+2+1=15). Př. 1110B = EH Převody mezi jednotlivými číselnými soustavami 1. Převod z desítkové číselné soustavy do dvojkové a naopak - Převod celých čísel Z desítkové číselné soustavy přev{díme do jakékoliv jiné číselné soustavy tak, že desítkové číslo postupně dělíme z{kladem dané číselné soustavy a sepisujeme zbytky ( musí být vždy menší než z{klad, kterým dělíme). Dělíme tak dlouho, dokud výsledek dělení není roven 0. Zbytky jsou číslem v nové číselné soustavě, kde poslední zbytek je nejvyšším ř{dem získaného čísla ( číslo sepíšeme od konce- viz příklad). Nejčastěji přev{díme číslo do dvojkové soustavy. Příklad: 325D : 2 = 101000101B 162 1 81 0 40 1 20 0 10 0 5 0 2 1 1 0 0 1 Kontrola je z{roveň zpětným převodem ( podle Hornerova schematu): 101000101B = 1.2 8 + 0.2 7 + 1.2 6 + 0.2 5 + 0.2 4 + 0.2 3 + 1.2 2 + 0.2 1 + 1.2 0 = = 1.256+0.128+1.64+0.32+0.16+0.8+1.4+0.2+1.1= 24/10/2011 Číselné soustavy 5
= 256+64+4+1 = 325D 2. Převod z dvojkové číselné soustavy do osmičkové a naopak Z dvojkové číselné soustavy přev{díme do osmičkové číselné soustavy tak, že dvojkové číslo postupně rozdělíme od nejnižšího ř{du ( zprava) po trojicích a trojice s v{hami 4-2-1 sečteme a dostaneme jednotlivé číslice v osmičkové soustavě. Příklad: 101000101B = 101 000 101B = 505O 421 421 421 5 0 5 Z osmičkové číselné soustavy přev{díme do dvojkové číselné soustavy tak, že každou osmičkovou číslici rozdělíme na tři bin{rní číslice s v{hami 4-2-1 ( nejvyšší číslice m{ hodnotu 7). Příklad: 543O = 101 100 011B = 101100011B 421 421 421 3. Převod z dvojkové číselné soustavy do šestn{ctkové a naopak Z dvojkové číselné soustavy přev{díme do šestn{ctkové číselné soustavy tak, že dvojkové číslo postupně rozdělíme od nejnižšího ř{du ( zprava) po čtveřicích a čtveřice s v{hami 8-4-2-1 sečteme a dostaneme jednotlivé číslice v šestn{ctkové soustavě. Příklad: 101000101B = 1 0100 0101B = 145H 1 8421 8421 1 4 5 Z šestn{ctkové číselné soustavy přev{díme do dvojkové číselné soustavy tak, že každou šestn{ctkovou číslici rozdělíme na čtyři bin{rní číslice s v{hami 8-4-2-1 ( nejvyšší číslice m{ hodnotu F=15). Příklad: A947O = 1010 1001 0100 0111B = 1010100101000111B 8421 8421 8421 8421 4. Převod z osmičkové číselné soustavy do šestn{ctkové a naopak Z osmičkové číselné soustavy přev{díme do šestn{ctkové číselné soustavy tak, že číslo nejprve převedeme do dvojkové číselné soustavy a potom dvojkové číslo převedeme do šestn{ctkové číselné soustavy. 24/10/2011 Číselné soustavy 6
Obr{cený převod se prov{dí stejným způsobem přes dvojkovou číselnou soustavu. Příklad: 735O = 111 011 101B = 1 1101 1101B = 1DDH 421 421 421 1 8421 8421 Kódy Kód je předpis, podle nějž se informace ( znaky) přev{dějí do jiné reprezentace ( v případě číslicové techniky na bity) za účelem jejich přenosu či z{znamu. Je to tedy způsob, jakým se informace sdělují nebo zapisují na různ{ média Kódové slovo je bitov{ reprezentace daného znaku. Kódov{ní je proces převodu informací na symboly kódu, dekódov{ní je opačný proces. Zn{mým příkladem kódu je Moorseova abeceda, kter{ přev{dí písmena na sekvence teček a č{rek. Šifrov{ní je kódov{ní, kde algoritmus není běžně dostupný. Uvedeme pouze některé kódy, další jsou uvedeny v učebnici [1]. 1. Kódy pro prov{dění strojových instrukcí -Přímý dvojkový kód Při zobrazení čísel v počítači je zpravidla nejvyšší bit vyhrazen pro označení, zda je číslo kladné nebo z{porné- tzv. znaménkový bit ( kladné číslo je označeno 0 a z{porné 1). Kladn{ čísla jsou v počítači zobrazena v přímém dvojkovém kódu. Například cel{ čísla můžeme zobrazit jako datový typ WORD tj. v 1B - 1. ( nejvyšší) bit je znaménkový. Příklad: 35D= 100011B 0 0 1 0 0 0 1 1 Znaménkový bit -Dvojkový doplňkový kód V přímém dvojkovém kódu by nešly jednoduše prov{dět aritmetické operace. Proto se z{porn{ čísla zobrazují ve dvojkovém doplňkovém kódu. Dvojkové číslo se převede do dvojkového doplňkového kódu tak, že se na daném počtu bitů ( v našem případě na 7) zamění 1 na 0 a 1 na 0 a k nejnižšímu bitu přičte 1. 24/10/2011 Číselné soustavy 7
Příklad: 35D= 100011B = 0100011B ( doplněno na 7 bitů) 1011100 + 1 1011101-35D= 1011101B 1 1 0 1 1 1 0 1 Znaménkový bit 2. Kódy pro zjednodušený z{pis dvojkových čísel Pro zjednodušený z{pis dvojkových čísel se použív{ - Osmičkový kód - Šestn{ctkový kód 3. BCD kód Znamen{ bin{rně kódovan{ dekadick{ číslice. Každ{ desítkov{ číslice je kódovan{ čtyřmi bity v dvojkové číselné soustavě. Číslo zapsané v BCD kódu musí mít počet bitů dělitelný čtyřmi. V{hy u jednotlivých bitů jsou 8-4-2-1. Příklad: 25809D = 0010 0101 1000 0000 1001BCD 4. Aikenův kód Jedn{ se opět o bin{rně kódované dekadické číslice. Každ{ desítkov{ číslice je kódovan{ čtyřmi bity v dvojkové číselné soustavě. Číslo zapsané v Aikenově kódu musí mít počet bitů dělitelný čtyřmi. Číslice 0-4 mají v prvním ( nejvyšším) bitu 0, 5-9 mají 1. V{hy u jednotlivých bitů jsou 2-4-2-1. Příklad: 25809D = 0010 1011 1110 0000 1111Aik Srovn{ní obou kódů je v n{sledující tabulce. 24/10/2011 Číselné soustavy 8
Desítkov{ číslice BCD kód Aikenův kód 8 4 2 1 2 4 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 0 3 0 0 1 1 0 0 1 1 4 0 1 0 0 0 1 0 0 5 0 1 0 1 1 0 1 1 6 0 1 1 0 1 1 0 0 7 0 1 1 1 1 1 0 1 8 1 0 0 0 1 1 1 0 9 1 0 0 1 1 1 1 1 5. Kód k z n Daný kód umožňuje detekci vzniku jedné chyby při přenosu informace. n je počet bitů ( délka slova) n= 2...10 k je počet 1. Zn{mý je např. kód 2 z 5. Příklad: 10010 při přenosu vznikla jedna chyba 10110 6. Kódy pro zobrazení znaků - ASCII kód ( American Standard Code for Information Interchange) Kód se použív{ pro zobrazení znaků v počítači. Jeden znak je zobrazen 8 bity tzn. v jednom B. Původně byl kód sedmibitový, ale byl rozšířen. Původní č{st tabulky obsahuje v nejvyšším bitu 0: Znaky 0-31 jsou řídicí ( netisknutelné) znaky. Znaky 32-127 jsou běžn{ interpunkční a matematick{ znaménka, číslice, velk{ a mal{ anglick{ abeceda. Rozšířen{ č{st tabulky obsahuje v nejvyšším bitu 1: Znaky 128-255 jsou speci{lní grafické symboly a znaky n{rodních abeced. Znaky n{rodních abeced se mění programově. Např. čeština je kódov{na různými způsoby: Kód Kamenických ( Kam) Kód Latin2 (Lat) Kódov{ str{nky CP1250 ( Win) Jednotlivé znaky se dají vložit stiskem pravéhoalt+dek.čísla znaku. 24/10/2011 Číselné soustavy 9
24/10/2011 Číselné soustavy 10
- UNICODE Hexadecim{lní kód je mezin{rodní standard. Kód se použív{ pro zobrazení znaků v počítači. Používají jej nejmodernější textové editory. Jeden znak je zobrazen 16 bity tzn. ve 2B. Textové soubory mají větší velikost, ale v kódu jsou obsaženy všechny abecedy. Může zobrazit 2 16 = 65536 znaků, ale v současnosti je jich pouze asi 40000. Prvních 128 znaků jsou znaky ASCII. Prvních 32 znaků jsou řídicí znaky, ostatní znaky patří většinou ke kódu ANSI (American National Standards Institut). Další kódy jsou v učebnici [1]. 24/10/2011 Číselné soustavy 11
Shrnutí: Ve výpočetní technice se používají jiné číselné soustavy než je desítkov{ dvojkov{, osmičkov{ a šestn{ctkov{. Důležité jsou převody mezi těmito soustavami. Pro z{pis znaků v počítači existují různé kódy. Použité zdroje informací: *1+ ANTOŠOVÁ, M. - DAVÍDEK, V. Číslicov{ technika: učebnice. 1.vyd. České Budějovice, KOPP, 2004. 286 s. ISBN 80-7232-206-0. [2] KESL,J. Elektronika III: číslicov{ technika. 1.vyd. Praha, BEN, 2003. 112s. ISBN 80-7300-076-8. *3+ BLATNÝ, J. a kol. Číslicové počítače. 1.vyd. Praha, SNTL, 1980, 496s. [4] JANSEN, H. a kol. Informační a telekomunikační technika. 1.vyd. Praha, Europa-Sobotales cz.s.r.o, 2004, 400s. ISBN 80-86706-08-7. [5] HÄBERLE, G. a kol. Elektrotechnické tabulky pro školu i praxi. 1.vyd. Praha, Europa-Sobotales cz.s.r.o, 2006, 460s. ISBN 80-86706-16-8. 24/10/2011 Číselné soustavy 12