Čí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
0
0
0
0
0
Nejnižší řád čísla
Nejmenší číslo zapsané v 1B: 0
0
0
Nejmenší číslo zapsané v jednom bytu m{ vždy hodnotu 0.
Největší číslo zapsané v 1B: 1. 27 + 1. 26 + 1. 25 + 1. 24 + 1.23 + 1.22 + 1. 21 + 1. 20 = 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=210B
Mega
M
1MB=1024kB
1MB=220B
Giga
G
1GB=1024MB
1GB=230B
Tera
T
1TB=1024GB
1TB=240B
Přehled číselných soustav M{me-li např. desítkové číslo 1746,32 rozepíšeme je: 1746,32= 1.103 + 7.102 + 4.101 + 6.100 = 1.1000 + 7.100 + 4.10 + 6.1 tisíce
stovky
desítky
+, +,
jednotky
3.10-1 3.1/10 desetiny
+ 2.10-2 = + 2.1/100 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 . zm, 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í z0 = 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.24 + 0.23 + 0.22 + 1.21 + 1.20 = 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.82 + 4.81 + 1.80 = 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.162 + 11.161 + 8.160 = 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
24
23
22
21
20
82
v{hy
81
80
162
v{hy
v{hy
8
4
2
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
Číselné soustavy
8
160
16
20/10/2011
64
161
1
256
16
1
1
0 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 162 81 40 20 10 5 2 1 0 20/10/2011
: 2 = 101000101B 1 0 1 0 0 0 1 0 1 Číselné soustavy
5
Kontrola je z{roveň zpětným převodem ( podle Hornerova schematu): 101000101B = 1.28 + 0.27 + 1.26 + 0.25 + 0.24 + 0.23 + 1.22 + 0.21 + 1.20 = = 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 0 1 2 3 4 5 6 7 8 9
8 0 0 0 0 0 0 0 0 1 1
BCD kód 4 2 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
1 0 1 0 1 0 1 0 1 0 1
2 0 0 0 0 0 1 1 1 1 1
Aikenův kód 4 2 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1
1 0 1 0 1 0 1 0 1 0 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 216 = 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 + 01101000B 100010111B
175D + 104D 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 - 01101000B 010000111B
20/10/2011
10010111B + 1 10011000B
10101111B + 10011000B 101000111B
Číselné soustavy
175D - 104D 71D 13
Příklad:
10011000B - 11111000B 10100000B
00000111B + 1 00001000B
10011000B +00001000B 10100000B
01011111B + 1 01100000B
152D - 248D - 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 1101 1101 0000 1101 10001111B
1011B
13D . 11D
= 143D
- 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:
20/10/2011
11011101101B : 1001B = 11000101B -1001 1001 -1001 01011 -1001 1001 -1001 0
Číselné soustavy
1773D : 9D = 197D
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