Co vlastně znamená „soustava“

Zápis čísla je dohoda o tom, co znamená pozice číslice. V desítkové soustavě znamená 1234 přesně 1·103 + 2·102 + 3·101 + 4·100 - každý krok doleva je desetkrát víc. Základ soustavy je to číslo, kterým se násobí; nic jiného se nemění. Ve dvojkové soustavě je základ 2, v šestnáctkové 16, a pravidlo zůstává stejné.

Z toho plyne i kolik je potřeba číslic: vždy přesně tolik, kolik je základ. Desítková má 0 až 9, dvojková jen 0 a 1, šestnáctková potřebuje šestnáct znaků - a protože jich deset arabských nestačí, doplní se písmeny A až F pro hodnoty 10 až 15. Písmena nejsou nic záhadného, jsou to jen číslice, na které se nedostalo.

Převod z desítkové: dělení se zbytkem

Číslo se opakovaně dělí základem cílové soustavy a zapisují se zbytky. Až vyjde podíl nula, přečtou se nasbírané zbytky zdola nahoru - a to je hledaný zápis. Pořadí je to jediné, na čem se dá u téhle metody chybovat, a chybuje se na něm často.

Proč to funguje: jedno dělení základem odloupne poslední číslici zápisu, přesně jako dělení deseti odloupne poslední číslici v desítkové soustavě. Zbytek je ta číslice, podíl je zbytek čísla.

Převod do desítkové: rozvoj podle mocnin

Opačný směr je ještě přímočařejší - každá číslice se vynásobí mocninou základu podle své pozice a všechno se sečte. Pozice se počítají zprava od nuly, takže poslední číslice se násobí základem na nultou, tedy jedničkou. U šestnáctkového 1A vyjde 1·161 + 10·160 = 26.

Dvojková a šestnáctková: převod bez počítání

Šestnáct je čtvrtá mocnina dvou, a to má jeden velmi praktický důsledek: jedna šestnáctková číslice odpovídá přesně čtyřem dvojkovým. Převod mezi těmito dvěma soustavami se proto nepočítá, jen se přeskupuje - binární zápis se zprava rozdělí po čtveřicích a každá čtveřice se nahradí jednou číslicí. Zleva se případně doplní nuly.

Právě kvůli tomu se šestnáctková soustava vůbec používá. Je to zkratka za dvojkovou, čtyřikrát kratší a pořád s ní přesně zarovnaná - proto se v ní píší barvy (#FF8800), adresy v paměti i otisky souborů. Osmičková soustava funguje stejně, jen po trojicích, protože osm je třetí mocnina dvou.

Desetinná část, a proč nemusí vyjít

Desetinná čísla se převádějí opačným postupem: desetinná část se opakovaně násobí základem a odebírá se celá část. Jenže zatímco celé číslo vyjde v každé soustavě přesně, desetinná část nemusí. Zlomek má v cílové soustavě konečný zápis jen tehdy, když prvočísla v jeho jmenovateli dělí i základ té soustavy.

Nejznámější příklad je 0,1. V desítkové soustavě je to jedna desetina, úhledné konečné číslo. Ve dvojkové je jmenovatel 10 = 2·5, jenže základ 2 tu pětku neobsahuje - a 0,1 se stává periodickým číslem, které nekonečně opakuje 0011. Proto počítač neumí uložit desetinu přesně a proto 0.1 + 0.2 nevyjde přesně 0.3. Převodník výše na takový případ upozorní, místo aby zaokrouhlený výsledek vydával za hodnotu.

Barvy RGB a kód HEX

Obrazovka skládá každou barvu ze tří světel: červeného, zeleného a modrého, odtud RGB (red, green, blue). Každé světlo má sílu od 0 do 255, tedy přesně jeden bajt. Černá je (0, 0, 0), všechno zhasnuté, bílá (255, 255, 255), všechno naplno. Světla se sčítají, takže červená a zelená dají žlutou (255, 255, 0), ne hnědou jako vodovky.

Kód barvy, jak ho znáte z grafických programů a webových stránek, je totéž v šestnáctkové soustavě. Každá složka se zapíše dvěma číslicemi a za sebe se dají s mřížkou na začátku: 255 je FF, 136 je 88 a 0 je 00, takže (255, 136, 0) je #FF8800, oranžová. Složka se převede dělením 16: podíl je první číslice, zbytek druhá. Zpátky se počítá první číslice krát 16 plus druhá, u C8 tedy 12 · 16 + 8 = 200. Zkrácený zápis #F80 jen zdvojí každou číslici.

Na co si dát pozor

Zbytky se čtou zdola nahoru, ne shora dolů. Číslice A až F mají hodnoty 10 až 15, ne 11 až 16. V zápisu nesmí být číslice, která je větší nebo rovna základu - 182 není osmičkové číslo, protože osmička v osmičkové soustavě neexistuje. A prefixy z programování (0x pro šestnáctkovou, 0b pro dvojkovou) k číslu nepatří, jsou jen značka; převodník výše je sní, ale v sešitě je nechte být.

Slovensky

Číselné sústavy, dvojková sústava, šestnástková sústava, desiatková sústava, osmičková sústava, základ sústavy, zvyšok po delení, farby RGB, kód farby. Počítá se stejně.

Kde si o tom přečíst víc

Téma podrobněji rozebírá článek Převody soustav.