Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy Polyadické - zobrazené mnohočlenem Př. desítková soustava 0123 1011021031055321 +++= Číslice tvořící zápis čísla jsou vlastně koeficienty polynomu obsahujícího mocniny základu v tomto případě je základ 10 => desítková soustava. Obecně: základem soustavy může být libovolné přirozené číslo větší než 1. Zápis celého a desetinného čísla v soustavě o základu Z, obecné poznatky o číselných soustavách Pro zápis celého čísla platí: 0 0 1 1 2 2 1 1 ..... ZaZaZaZaN m m m m ++++= - - - - - = = 1 0 m i i i ZaN pro 2Z , kde: Z ... základ, m ... počet řádových míst , ai ... koeficient Př.: , kde m = 4 a z = 100123 1031061081044863 +++= Pro zápis desetinného čísla platí: n n m m m m ZaZaZaZaZaZaZaN - - - - - - - - - +++++++= ........... 2 2 1 1 0 0 1 1 2 2 1 1 pro 2Z kde: Z ... základ, m ... počet řádových míst , ai ... koeficient, n ... počet desetinných míst Př.: , kde m = 2 ; z = 10 a n=22101 10210510510252.25 -- +++= Obecný zápis čísla: ( ........ , .......... )1-ma 2-ma 1a 0a 1-a 2-a na- Z Př. (10)2, (135)7, (455)6 , (1247,637)8 Kapacita soustavy: m ZK = Př. Z=10, m=3 K=1000 možných čísel (0..999) Největší hodnota soustavy: 1-= m MAX ZN Př. Z=10, m=3 NMAX = 999 ­ největší číslo desítkové soustavy na 3 řádová místa. Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 2 (celkem 7) Významné soustavy: základ soustava 2 binární 8 oktalová 16 hexadecimální 10 dekadická Zobrazení čísel v různých číselných soustavách Z=10 Z=2 Z=8 Z=16 1 1 1 1 5 101 5 5 10 1010 12 A 15 1111 17 F 20 10100 24 14 V soustavách kde Z >10 je problém s jednoznačným zápisem čísel např. (12)16 nevíme zda je tím myšleno (1)16 a (2)16, nebo (12)16, tím pádem, může mít jeden zápis 2 různé významy, a to je nepřípustné. ( ) ( )10 01 16 1816216112 =+= nebo ( ) ( )10 0 16 12161212 == . ???????? V takových případech zavádíme (u soustav kde Z >10) pro zajištění jednoznačnosti zápisu další formy číslic- nejčastěji písmena. V případě hexadecimální soustavy (Z=16) zavedeme písmena A,B,C,D,E,F. Kde: (A)16=(10)10 (D)16=(13)10 (B)16=(11)10 (E)16=(14)10 (C)16=(12)10 (F)16=(15)10 Převody v soustavách Typy převodů: (N)X (N)10 (N)10 (N)X (N)X (N)10 (N)Y a) (N)X (N)10 - vyčíslením polynomu v desítkové soustavě Př. ( ) ( )10 012 8 212416192848283324 =++=++= ( ) ( )10 012345 2 53141632212021202121110101 =+++=+++++= ( ) ( )10 01 16 1721216016121610 =+=+=AC Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 3 (celkem 7) Příklady k samostatnému procvičení: Výsledky: a) (561)8 a) (369)10 b) (ABBA)16 b) (43962)10 c) (10011001)2 c) (153)10 d) (30424)8 d) (12564)10 e) (AB12C4)16 e) (11211460)10 f) (1100110001)2 f) (817)10 b) (N)10 (N)X - postupným dělením základem, zbytky sepisujeme v opačném pořadí. Př.: (25)10 (N)2 (25)10 (N)8 (187)10 (N)16 25 : 2 =12 1 25 : 8 = 3 1 8 1 187 :16 = 11 11 16 1 12 : 2 = 6 0 3 : 8 = 0 3 = ( 3 1 )8 11 :16 = 0 11 = ( B B )16 6 : 2 = 3 0 3 : 2 = 1 1 16 8 4 2 1 1 : 2 = 0 1 = (1 1 0 0 1)2 U každého převodu z desítkové soustavy provádějte zkoušku výpočtu zpětným vyčíslením výsledku v desítkové soustavě. (postup viz a)) Příklady k samostatnému procvičení: Výsledky: a) (67)10 (N)2 a) (1000011)2 b) (67)10 (N)8 b) (103)8 c) (36)10 (N)16 c) (24)16 c) (N)X (N)10 (N)Y ( ) ( ) ( ) ( ) ( ) ( ) ( )710 10 3 5 7105 236125 125511000 1000 = == == NN ( ) ( ) ( ) ( ) ( ) ( ) ( )610 10 0123 3 6103 15571 71269272323231322122 2122 = =+++=+++= == NN 125 : 7 = 17 6 71 : 6 = 11 5 17 : 7= 2 3 11 : 6= 1 5 2 : 7= 0 2 = (236)7 1 : 6= 0 1 = (155)6 Příklady k samostatnému procvičení: Výsledek: a) (314)6 (N)10 (N)8 a) (118)10 = (166)8 Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 4 (celkem 7) Binární soustava počítače pracují na bázi binární soustavy. Ale pro svůj rozsáhlý zápis je binární soustava nepřehledná. Proto někdy pracujeme se soustavami odvozenými od binární. Např. Oktalová, Hexadecimální. (Připomenutí : 8=23 16=24 ) Pro rychlejší převod z binární do oktalové soustavy : - seskupíme v zápisu číslice do skupin po třech (začínáme zprava) a každou takto získanou trojici vyjádříme jako číslici v oktalové soustavě. Př. (1011001100)2=(N)8 ( 1 011 001 100)2= (1314)8 1 3 1 4 Tím, že oddělujeme trojice čísel, max. možná výsledná číslice v oktalové soustavě je 7, což vyhovuje definici této soustavy. Pokud nám při dělení binárního čísla na trojice číslic vlevo v poslední skupině zbývá méně než 3 číslice, můžeme skupinu beztrestně doplnit nulami vlevo do počtu 3 číslic. Při převodu z binární do hexadecimální soustavy postupujeme obdobně s tím rozdílem, že seskupujeme číslice po čtyřech.(začínáme opět zprava). Př. (1011001100)2=(N)16 ( 10 1100 1100)2= (2CC)16 2 C C Opačně převádíme analogicky, ale musíme dát pozor na to, že: * při převodu z oktalové do binární soustavy každá oktalová číslice odpovídá právě třem binárním * při převodu z hexadecimální do binární soustavy každá hexad. číslice odpovídá právě čtyřem binárním Př. (EF6)16= (N)2 (EF6)16= ( 1110 1111 0110 )2 !!! Každá hexadecimální číslice !!!!! E F 6 představuje právě 4 binární číslice - číslo 6 se dá v binární soustavě vyjádřit jako (110)2, ale v tomto příkladě při převodu z hexad. soustavy je nutné ho vyjádřit jako (0110)2, abychom dodrželi 4 platné binární číslice pro jednu hexadecimální!!! Příklady k samostatnému procvičení: (10110011101)2 (N)8 (10110011101)2 (N)16 (2137)8 (N)2 (DCA2)16 (N)2 Převody desetinných čísel - převádíme celé číslo(viz nahoře) a zlomek. Zlomek - postupným násobením řádem základu a sepisujeme ve stejném pořadí - Ukončení násobení - výsledkem násobení základem je celé číslo - naleznu periodu ve výpočtu Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 5 (celkem 7) Př. (25,75)10 ( N)2 (25)10 = (11001)2 (0,75)10 = zbytek (25,75)10 = (11001,11)2 = (0,11) 125,0 5,1275,0 = = 1 1 2 Př. (25,75)10 (N)8 (25)10 = (31)2 (25,75)10 = (31,6)8 (0,75)10 = zbytek = (0,6)6875,0 = 6 8 Př. (31,6)8 (N)10 ( ) 75,258681836,31 101 8 =++= Př. ( 11001,11 )2 (N)8 ( 011 001, 110)2= (31,6)8 .....trik se seskupováním číslic do skupin, v celé části čísla na levou 3 1 6 stranu zapíšu 0, aby nejlevější seskupení byla trojice, totéž udělám v desetinné části čísla na pravé straně - nuly připisuji do nejpravější skupiny -nezměním tak hodnotu čísla. Pozor ! Připisování nul na pravou stranu bez změny hodnoty čísla je možné jen za desetinnou čárkou, před ní to nefunguje! Před desetinnou čárkou lze připisovat nuly na levou stranu. opět analogicky z binární do hexadecimální soustavy Příklady k samostatnému procvičení: Výsledky: a) (12,126)16 (N)10 a) (18,071044921875)10 b) (110111001,10110)2 (N)16 b) (1B9,B)16 c) (110111001,10110)2 (N)8 c) (671,54)8 Pozn. Narozdíl od matematiky musíme v programování každé číslo vyjadřovat pomocí konečného (omezeného) počtu číslic. Nelze tedy všechny hodnoty vyjádřit zcela přesně ale jen s konečnou přesností. Např. (0,4)10 (N)2 0,4 2 = 0,8 0 0,8 2 = 1,6 1 0,6 2 = 1,2 1 (0,4)10 = (0,0110)2 0,2 2 = 0,4 0 0,4 2 = 0,8 0 (0,0110) 2=(0,375)10 tj. Chyba při převodu je (0,025)10 0,8 2 = 1,6 1 (0,01100110) 2=(0,3984)10 tj. Chyba při převodu je (0,0016)10 .........atd. výpočet vede na periodické číslo binární číslo by mělo nekonečně mnoho číslic za desetinnou čárkou- opakující se perioda ,,0110" (toto je příklad, kdy vyjádření téhož čísla v jedné soustavě pomocí konečného počtu číslic může převodem do jiné soustavy nabýt nekonečně mnoha číslic). Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 6 (celkem 7) Základní aritmetické operace a) sčítání (vždy v dané soustavě: dekadické, oktalové, ...) sestavujeme tabulky přenosů např. pro binární soustavu: + 0 1 0 0 1 1 1 !!!10!!! Při sčítání 1 a 1 v binární soustavě je výsledkem 10 !!! ­ jednička se přenáší do vyššího levějšího řádu ­ stejný systém jako přenášení v desítkové soustavě při sčítání. Př. (36)10 (100100)2 (44)8 (24)16 (1011,110)2 (28)10 (11100)2 (34)8 (1C)16 (1010,101)2 (64)10 (1000000)2 (100)8 (40)16 (10110,011)2 pozor na přenosy do vyšších(levějších) řádů. Příklady k samostatnému procvičení: Výsledky a) (10110110)2 + (11011101)2 a) (110010011)2 b) (11011011)2+(10001101)2 b) (101101000)2 c) (74321)8+(625)8 c) (75146)8 d) (A1B2)16+(F3E4)16 d) (19596)16 b) odečítání - převádíme na sčítání s doplňkem (tj. k menšenci přičítáme doplněk menšitele do Nmax) Pro doplněk platí: ( ) XZD m --= 1 Kde: m ... počet míst menšence X ... menšitel Z ... základ soustavy Př. (385)10......menšenec Doplněk (68)10 do (999)10 = (931)10 -(68)10......menšitel (N)10 (931)10 doplněk +(385)10 menšenec 1316 +1 kruhový přenos (317)10 Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 7 (celkem 7) Př. (34)8 Doplněk (16)8 do (77)8 = (61)8 -(16)8 (N)8 (61)8 doplněk +(34)8 menšenec 115 +1 kruhový přenos (16)8 Př. (24)16 Doplněk (1C)16 do (FF)16 = (E3)16 -(1C)16 (N)16 (E3)16 doplněk +(24)16 menšenec 107 +1 kruhový přenos (8)16 Příklady k samostatnému procvičení: Výsledky a) (364)8 - (172)8 a) (172)8 b) (C6)16 - (A3)16 b) (23)16