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.

Kde se dvojková soustava hodí

Každá IP adresa a maska je 32 bitů, jen zapsaných po osmi desítkově. Adresa sítě se z nich počítá právě ve dvojkové soustavě, bit po bitu.

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.