Čí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, umět v nich prov{dět z{kladní aritmetické operace 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. 20/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 20/10/2011 Číselné soustavy 2
-Osmičkov{ (oktalov{) číseln{ soustava O: a = 0,1 7 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. 20/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 20/10/2011 Číselné soustavy 4
Příklad: 16D = 10000B = 20O = 10H 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 20/10/2011 Číselné soustavy 5
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= = 256+64+4+1 = 325D -Převod desetinných čísel Z desítkové číselné soustavy přev{díme do jakékoliv jiné číselné soustavy tak, že desetinnou č{st desítkového čísla postupně n{sobíme z{kladem dané číselné soustavy a výsledky postupně sepisujeme. První cel{ č{st výsledku je první číslicí nového desetinného čísla ( číslice je vždy v rozsahu 0,,z-1). Desetinnou č{st n{sobíme tak dlouho, dokud nedostaneme nulový výsledek v desetinné č{sti nebo dohodnutý počet desetinných číslic (číslo sepíšeme shora- viz příklad). Příklad: 0,125D x 2 = 0,001B 0 250 0 500 1 000 Kontrola je z{roveň zpětným převodem ( podle Hornerova schematu): 0,001B = 0.2-1 + 0.2-2 + 1.2-3 = 0.1/2 + 0.1/4 + 1.1/8 = 0.0,5 + 0.0,25 + 1.0,125 = 0,125D Pokud jsme číslo nepřevedli celé, není výsledek kontroly přesný, číslo se pouze blíží původní hodnotě v desítkové soustavě. -Převod re{lných čísel Převedeme podle předchozích pravidel zvl{šť celou a desetinnou č{st čísla. Výsledné číslo sepíšeme dohromady. Příklad: 325,125D = 101000101,001B 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 20/10/2011 Číselné soustavy 6
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. 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 20/10/2011 Číselné soustavy 7
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. Příklad: 35D= 100011B = 0100011B ( doplněno na 7 bitů) 1011100 + 1 1011101 20/10/2011 Číselné soustavy 8
-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. 20/10/2011 Číselné soustavy 9
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) 20/10/2011 Číselné soustavy 10
Jednotlivé znaky se dají vložit stiskem pravéhoalt+dek.čísla znaku. 20/10/2011 Číselné soustavy 11
- 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. 20/10/2011 Číselné soustavy 12
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]. Aritmetické operace ve dvojkové číselné soustavě Veškeré aritmetické operace se v procesoru ( ALU) přev{dějí na operaci sčít{ní a popřípadě posun o 1 bit vlevo nebo vpravo. - Sčít{ní Tabulka sčít{ní 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 =10 (1 + 1 = 2)D přenos Příklad: 10101111B 175D + 01101000B + 104D 100010111B 279D - Odčít{ní Tabulka odčít{ní 0-0 = 0 10-1 = 1 (2-1 = 1)D výpůjčka z vyššího ř{du 1-0 = 1 1-1 = 0 V ALU ( aritmeticko-logick{ jednotka) se operace odčít{ní převede na sčít{ní přičtení z{porného čísla. Menšitel se převede do dvojkového doplňkového kódu a poté se přičte k menšenci. Pokud výsledek přes{hne stanovený počet bitů, 1 v nejvyšším bitu se škrtne. Příklad: 10101111B 10010111B 10101111B 175D - 01101000B + 1 + 10011000B - 104D 010000111B 10011000B 101000111B 71D 20/10/2011 Číselné soustavy 13
Příklad: 10011000B 00000111B 10011000B 01011111B 152D - 11111000B + 1 +00001000B + 1-248D 10100000B 00001000B 10100000B 01100000B - 96D - N{sobení Tabulka n{sobení 0. 0 = 0 0. 1 = 0 1. 0 = 0 1. 1 = 1 V praxi se operace n{sobení převede na sčít{ní a posun doleva. Příklad: 1101B x 1011B 13D. 11D = 143D 1101 1101 0000 1101 10001111B - Dělení Tabulka dělení 0 : 0 = 0 není definov{no 0 : 1 = 0 1 : 0 = 0 není definov{no 1 : 1 = 1 V praxi se operace dělení převede na odčít{ní ( v ALU sčít{ní dvojkové doplňkové číslo) a posun doprava. Příklad: 11011101101B : 1001B = 11000101B 1773D : 9D = 197D -1001 1001-1001 01011-1001 1001-1001 0 20/10/2011 Číselné soustavy 14
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 a počít{ní s nimi. 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. 20/10/2011 Číselné soustavy 15