Obsah

Číselné soustavy

Viz též hesla Desítková soustava a Dvojková soustava na Wikipedii.

číslo ve dvojkové soustavě Dříve než se pustíme do programování, připomeneme si stručně číselné soustavy. Každá soustava je určena celým kladným číslem z ≥ 2, kterému říkáme základ soustavy. Soustava o základu z používá číslice 0, 1, …, z - 1. V dalším textu zmíníme soustavy o základech 2, 8, 10 a 16. Pokud nebude z kontextu zřejmé, jakou soustavu používáme, budeme základ soustavy uvádět jako dolní index. Např. 100010102 = 8a16 = 2128 = 13810. Soustava o základu 10 se nazývá desítková (dekadická, angl. decimal). Používá číslice 0 až 9. Soustavě o základu 2 říkáme dvojková (binární, angl. binary). Používá pouze dvě číslice 0 a 1. Číslo zapsané ve dvojkové soustavě je tedy posloupnost nul a jedniček, tzv. bitů. Bit (z angl. binary digit) je jiný název pro dvojkovou číslici. Např. 1001 je dvojkový zápis hodnoty 9 v desítkové soustavě. Při převodu čísla z desítkové soustavy do dvojkové postupujeme takto: číslo vydělíme celočíselně dvěma. Zbytek po celočíselném dělení (má hodnotu 0 nebo 1) představuje jednu číslici ve dvojkovém zápise čísla. převod do dvojkové soustavy číslo ve dvojkové soustavě Výsledek dělení opět vydělíme celočíselně dvěma a zjistíme zbytek po dělení. Celý postup opakujeme tak dlouho, dokud je výsledek dělení nenulový. Dvojkový zápis čísla je tvořen zbytky nalezenými v předchozích krocích. Tyto zbytky zapíšeme v opačném pořadí, než jsme je získali.

Při převodu čísla z dvojkové soustavy do desítkové postupujeme ve dvojkovém zápise zprava a za každou jedničku na n-tém místě přičteme hodnotu 2n. Pozice číslujeme od 0.

Viz též heslo Šestnáctková soustava na Wikipedii.

šestnáctkové číslice číslo v šestnáctkové soustavě Soustava o základu 16 se nazývá šestnáctková (hexadecimální, angl. hexadecimal). Používá 15 číslic: 0, 1, …, 9, a, b, …, f. Např. 2a je šestnáctkový zápis hodnoty 2 * 16 + 10, tj. 42 desítkově.

převod z desítkové soustavy do šestnáctkové Při převodu čísla z desítkové soustavy do šestnáctkové postupujeme obdobně jako při převodu do dvojkové soustavy. V tomto případě však nedělíme dvěma nýbrž šestnácti. Každý zbytek po celočíselném dělení šestnácti představuje ve výsledném zápise jednu šestnáctkovou číslici. převod z šestnáctkové soustavy do desítkové Při převodu z šestnáctkové soustavy do desítkové probíráme jednotlivé číslice šestnáctkového zápisu a za každou číslici c přičteme k výsledku součin c * 16n, kde n je pořadí číslice v šestnáctkovém zápise, počítáno zprava.

převod z dvojkové soustavy do šestnáctkové Převod z dvojkové soustavy do šestnáctkové provádíme takto: posloupnost nul a jedniček rozdělíme na čtveřice (je-li potřeba, doplníme vlevo nuly) a každou čtveřici převedeme zvlášť na jednu šestnáctkovou číslici.

Viz též heslo Osmičková soustava na Wikipedii.

Soustava o základu 8 se nazývá osmičková (oktalová, angl. octal). Používá číslice 0, 1, …, 7. Např. 33 je osmičkový zápis hodnoty 3 * 8 + 3, tj. 27 desítkově.

převod z dvojkové soustavy do osmičkové Při převodu z desítkové soustavy do osmičkové a z osmičkové do desítkové postupujeme jako v případě šestnáctkové soustavy, pouze místo konstanty 16 používáme 8. Převod z dvojkové soustavy do osmičkové provádíme takto: posloupnost nul a jedniček rozdělíme na trojice (je-li potřeba, doplníme vlevo nuly) a každou trojici převedeme na jednu osmičkovou číslici.

Dále si ukážeme, jak zapisovat ve dvojkové soustavě desetinná čísla, tj. čísla, jejichž zápis obsahuje desetinnou (řádovou) čárku. Protože první počítače a první programovací jazyky byly navrženy v zemích, v nichž se místo řádové čárky používá řádová tečka, používáme v programování řádovou tečku. Čísla za řádovou tečkou představují záporné řády. Např. číslo 0.1 ve dvojkové soustavě je desítkově 2-1 a číslo 0.01 dvojkově je desítkově 2-2. Při převodu desetinného čísla z desítkové soustavy do dvojkové převedeme nejprve celou část čísla a pak část desetinnou. necelé číslo ve dvojkové soustavě Převod desetinné části provádíme takto: číslo vynásobíme dvěma, rozdělíme na celou a desetinnou část (celá část bude 0 nebo 1) a pro desetinnou část tento postup opakujeme tak dlouho, dokud je desetinná část nenulová, nebo dokud nemáme požadovaný počet míst za řádovou tečkou. převod z desítkové soustavy do dvojkové Číslice získané v jednotlivých krocích jako celé části mezivýsledků tvoří periodický rozvoj zápisu čísla ve dvojkové soustavě. Při převodu čísla z dvojkové soustavy do desítkové postupujeme zleva doprava a za každou jedničku na n-tém místě za řádovou tečkou přičteme 2-n.

převod z dvojkové soustavy do šestnáctkové Převod čísla z dvojkové soustavy do šestnáctkové opět rozdělíme na dva kroky: převod celé části a převod zlomkové části. Převod zlomkové části provádíme takto: nuly a jedničky za řádovou tečkou rozdělíme po čtyřech (je-li potřeba, doplníme vpravo nuly) a každou čtveřici převedeme na jednu šestnáctkovou číslici. Např. 0.0110 dvojkově je 0.6 šestnáctkově.

Při převodu čísla z dvojkové soustavy do osmičkové rozdělíme číslice za řádovou tečkou na trojice (je-li potřeba, doplníme vpravo nuly) a každou trojici převedeme na jednu osmičkovou číslici. Např. 0.01101 dvojkově je 0.32 osmičkově.

Úloha 1

Převeďte z desítkové soustavy do dvojkové.

Úloha 2

Převeďte z dvojkové soustavy do desítkové.

Úloha 3

Převeďte z desítkové soustavy do šestnáctkové.

Úloha 4

Převeďte z šestnáctkové soustavy do desítkové.

Úloha 5

Převeďte z dvojkové soustavy do šestnáctkové a osmičkové.

Úloha 6

Doplňte věty.

Otázky a odpovědi

Studentka: Mistře, vím, že v počítači jsou data uložena jako posloupnost bitů. Takže chápu, proč si povídáme o dvojkové soustavě. K čemu je však šestnáctková a osmičková soustava?
Java guru: Šestnáctková i osmičková soustava umožňují úspornější zápis posloupnosti bitů, tj. obsahu paměti počítače. Každá číslice v šestnáctkové soustavě reprezentuje čtveřici a každá číslice v osmičkové soustavě trojici bitů.