Číselné soustavy Ve světě počítačů se využívají tři základní soustavy: • dekadická • binární • hexadecimální • patří mezi soustavy poziční, tj. desítková hodnota každé číslice (znaku) závisí na její pozici vzhledem k řádové čárce • váhy v jednotlivých pozicích jsou mocniny základu soustavy Dekadická soustava • je tvořena deseti znaky (0 – 9) • základem soustavy je 10 • soustava v níž jsme zvyklí uvažovat • váhy u desítkové soustavy jsou mocniny 10 Bity a byty BIT • 1b (bit = binary digit) – pouze 0 nebo 1 1 = přítomnost el. náboje, +5 V 0 = absence el. náboje, 0 V BYTE A NÁSOBKY • 1B = 8b (skupina 8 bitů) • 1KB = 210 B = 1024 ( = 1 000) • 1MB = 220 B ( = 1 000 000) • 1GB = 230 B ( = 1 000 000 000) • 1TB = 240 B Co je bit a co byte? • Bit je základní jednotkou informace, 1 nebo 0 (ANONE). Bit je velmi malá jednotka a tak se rychlosti udávají v kbit a Mbit. • Byte je složen z 8 bitů. • Pokud si např. pořídíte rychlost připojení 64 kbit, znamená to, že rychlost stahování bude 8 kbyte. Binární soustava Dekadická hodnota Odpovídající binární hodnota 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 Je tvořena dvěma znaky (0 a 1) základem soustavy je 2 vyjádřeno pomocí základních znaků soustavy – 10 váha jedničky v této pozici je dvě Uložení znaků v paměti PC 1 B = 8 b = 1 znak 1 b - 0 nebo 1 Všechny kombinace : 00000000 00000001 00000010 00000011 00000100 00000101 00000110 ……. 11111111 28 = 256 kombinací = 256 znaků Binární soustava • váhy (mocniny základu) v jednotlivých pozicích: 210 29 28 27 26 25 24 23 22 21 20 1024 512 258 128 64 32 16 8 4 2 1 Interchange (ASCII) chart The American Standard Code for Information Datové typy Datový typ Velikost v paměti Rozsah Celočíselné typy Boolean 1 bit (ačkoliv obvykle uložen jako 1 bajt) 0 až 1 Byte 8 bitů (= 1 bajt) 0 až 255 Word 2 bajty 0 až 65 535 Double Word 4 bajty 0 až 4 294 967 295 Integer 4 bajty –2 147 483 648 až 2 147 483 647 Double Integer 8 bajtů –9 223 372 036 854 775 808 až 9 223 372 036 854 775 807 Typy s plovoucí čárkou Real 4 bajty 1E-37 až 1E+37 (6 desetinných míst) Double Float 8 bajtů 1E-307 až 1E+308 (15 desetinných míst) Hexadecimální soustava • Je tvořena šestnácti znaky (číslice 0 – 9 a písmena A – F, které nahrazují dvouciferné hodnoty 10 - 15) • Jednodušší převod na binární soustavu 1 hexadecimální znak = čtveřice bitů, tj. nul a jedniček využívají se všechny čtveřice – proto písmena s desítkovou hodnotou je 16 možných kombinací čtveřic – 24, tj. dají se pomocí nich vyjádřit desítkové hodnoty 0 – 15 • základem soustavy je 16, tj. opět 1016 • obvykle stačí méně hex. znaků pro vyjádření určité desítkové hodnoty Hexadecimální soustava – znaky a jejich dekadické hodnoty, binární vyjádření hexadecimální dekadická binární hexadecimální dekadická binární 0 0 0000 8 8 1000 1 1 0001 9 9 1001 2 2 0010 A 10 1010 3 3 0011 B 11 1011 4 4 0100 C 12 1100 5 5 0101 D 13 1101 6 6 0110 E 14 1110 7 7 0111 F 15 1111 Hexadecimální soustava - váhy • váhy hex. soustavy (do 3. řádu) 163 162 161 160 4096 256 16 1 Převody • z dekadické do binární 72D => ?B výsledek posledního dělení je číslice (příp. znak) nejvyššího řádu 72:2=36 36:2=18 18:2=9 9:2=4 4:2=2 2:2=1 Zbytky: 0 0 0 1 0 0 1 72D => 1001000B čteme od konce Převody • z binární do dekadické 1001000B => ?D 26 25 24 23 22 21 20 1 0 0 1 0 0 0 64 0 0 8 0 0 0 64D + 8D = 72D 1001000B => 72D Převody • z dekadické do hexadecimální 181D => ? 181: 16 =11 hexadecimálně výsledek B zbytek 5 výsledek posledního dělení je číslice (znak) nejvyššího řádu 181D => B516 Převody • z hexadecimální do dekadické FF1A16 => ? 6530610 váhy 163 162 161 160 Hex.znaky F F 1 A násobek 15 x 4096 15 x 256 1 x 16 10 x 1 Hodnota v příslušné pozici 61440 3840 16 10 stačí méně hex. znaků (4) pro vyjádření 5timístného desítkového čísla Kontrola – opačný převod • 65306/16 ---- 4081 zbytek 10 • 4081/16 ---- 255 zbytek 1 • 255/16 ---- 15 zbytek 15 15 tj. FF1A Záporná čísla – dvojkový doplněk Příklad Vytvořte dvojkový doplněk čísla 101102, pracujeme-li s osmibitovým vyjádřením čísla: • Zarovnáme počet bitů čísla na osm: 00010110 • Provedeme negaci: 11101001 • Přičteme jedničku: 11101010 • Výsledkem je tedy číslo: 111010102 Převod desetinného čísla do desítkové soustavy • Převod z dvojkové, šestnáctkové nebo jakékoliv jiné číselné soustavy do soustavy desítkové realizujeme tak, že číslo rozepíšeme na součet násobků mocnin základu dané soustavy, jak je uvedeno v příkladu 1, zápis se nám však obohatí o záporné mocniny (2-1, 2-2, 2-3, …, resp. 16-1, 16-2, …). • Pozn.: 2-1 = 1/2 = 0,5; 2-2 = 1/22 = 1/4 = 0,25; 16-1 = 1/16 = 0,0625 apod. Příklad Převeďte čísla 21C,816 a 1000011100,12 do desítkové soustavy. • 21C,816 = 2 · 162 + 1·161 + 12 · 160 + 8·16-1 = 512 + 16 + 12 + 0,5 = 540,510. • 1000011100,12 = 1 · 29 + 0 · 28 + 0 · 27 + 0 · 26 + 0 · 25 + 1 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 + 1 · 2-1 = 512 + 16 + 8 + 4 + 0,5 = 540,510. Převod desetinného čísla z desítkové soustavy • V případě převodu opačným směrem, tj. z desítkové soustavy do soustavy dvojkové, šestnáctkové nebo jiné, musíme vhodným způsobem modifikovat metodu opakovaného dělení pro převod desetinné části čísla. • Celou část čísla převádíme způsobem popsaným dříve: číslo postupně dělíme základem soustavy, do které jej převádíme, a zapisujeme přitom zbytky dělení. Výsledek dostaneme sepsáním těchto zbytků v opačném pořadí. • Desetinnou část budeme základem výsledné soustavy pro změnu násobit. Z výsledku oddělíme jeho celou a desetinnou část, přičemž část desetinnou budeme dále násobit, zatímco celé části, sepsané tentokrát ve stejném pořadí, tvoří výsledek převodu. Příklad Vyjádřete číslo 6,310 v binárním tvaru. Příklad Vyjádřete číslo 66,310 v hexadecimálním tvaru. Příklad Vyjádřete číslo 0,7812510 v hexadecimálním tvaru. Příklad Ukažte, že 2E,416 = 101110,012 = 56,28.