Převody soustav

Jak převádět čísla z desítkové soustavy do jiných soustav a naopak jak převádět čísla z jiných soustav do desítkové.

Co je to číselná soustava #

Běžně pracujeme s desítkovou soustavou. Tato soustava má deset číslic, 0, 1, 2, 3, 4, 5, 6, 7, 8 a 9. Desítková soustava se vyznačuje tím, že když nějaké číslo, například 57, vynásobíme deseti, posuneme se o jeden řád – potřebujeme o jednu číslici více na popis tohoto čísla: 570.

Můžeme mít i jiné číselné soustavy, taková osmičková soustava by obsahovala pouze číslice 0, …, 7. Výraz 7 + 1 by tak byl roven číslu 10, protože v osmičkové soustavě nemáme číslici 8. Šestnáctková sosutava by měla číslice 0, 1, … 14, 15. Někdy místo číslic, které jsou větší než 9, používáme písmena, takže šestnáctková soustava by měla číslice 0, …9, A, B, C, D, E, F.

S jinými číselnými soustavami se překvapivě setkáváme i v běžném životě. Například čas – sekundy a minuty počítáme v šedesátkové soustavě. Každý okamžik dne můžeme zapsat jako číslo v šedesátkové soustavě o třech číslicích. První číslice udává hodiny, druhá minuty, třetí sekundy. Pokud zvolíme jako oddělovač číslic dvojtečku, máme například číslo 14:05:59. Všimněte si, že když k tomuto času přičteme jednu sekundu, nezískáme čas 14:05:60, ale získáme čas 14:06:00 – protože číslice 60 není platnou číslicí šedesátkové soustavy.

Převod z desítkové do dvojkové soustavy #

Nechť máme na papíře číslo 70. Toto číslo budeme nyní chtít převést do dvojkové, binární soustavy. Princip je poměrně jednoduchý, číslo, které chceme převést, dělíme neustále dvojkou, až dojdeme k nule, přičemž si zapisujeme zbytky po celočíselném dělení. Pokud chceme převést číslo do jiné soustavy, například do šestnáctkové, budeme dělit šestnáctkou. Pokud do šestkové, dělíme šestkou. Takže v praxi to bude vypadat takto:

\[\begin{eqnarray}70 : 2 &= 35 & \longrightarrow 0 \quad(\mbox{zbytek po dělení})\\35 : 2 &= 17 & \longrightarrow 1\\17 : 2 &= 8 & \longrightarrow 1\\8 : 2 &= 4 & \longrightarrow 0\\4 : 2 &= 2 & \longrightarrow 0\\2 : 2 &= 1 & \longrightarrow 0\\1 : 2 &= 0 & \longrightarrow 1\end{eqnarray}\]

Výsledné číslo ve dvojkové soustavě udávají zbytky po dělení. Nebereme ale zbytke zvrchu, ale od spodu. Takže číslo 70 v binární soustavě je 1000110.

Převod z dvojkové do desítkové soustavy #

Opačně bychom převodli takto. Mějme číslo 1100010 a převeďme ho do desítkové soustavy. Tento směr je jednodušší, stačí vypočítat tento součet:

\[1100010_{10} = 1\cdot2^{6}+1\cdot2^{5}+0\cdot2^{4}+0\cdot2^{3}+0\cdot2^{2}+1\cdot2^{1}+0\cdot2^{0}\]

Každý sčítanec má tvar x · 2i, kde x je číslice z původního binárního čísla a i se zprava postupně zvětšuje vždy o jedna. Takže porotože převádíme číslo 1100010, vypadá tento součet takto:

\[1100010_{10} = \fbox{1}\cdot2^{6}+\fbox{1}\cdot2^{5}+\fbox{0}\cdot2^{4}+\fbox{0}\cdot2^{3}+\fbox{0}\cdot2^{2}+\fbox{1}\cdot2^{1}+\fbox{0}\cdot2^{0}\]

Číslo 1100010 má sedm číslic, takže mocniny u čísla dva budou postupně 6, 5, …, 1, 0. Po umocnění a vynásobení získáme výraz:

\[1100010_{10} = 64 + 32 + 2 = 98.\]

Proč tento postup funguje? #

Můžeme si to předvést na desítkové soustavě. Co ve skutečnosti znamenají číslice v čísle, například v čísle 7384? Číslice 4 udává počet jednotek, číslice 8 počet desítek, číslice 3 počet stovek a číslice 7 počet tisícovek. Takže můžeme napsat, že

\[7384 = 7\cdot 1000 + 3\cdot100 + 8\cdot 10 + 4\cdot 1\]

Tento výraz můžeme ještě upravit tak, abychom nepoužívali čísla 100, 10 a 1, ale abychom tam vždy měli nějakou mocninu deseti. Protože platí 100 = 1 a 101 = 10 atd., tak můžeme napsat

\[7384 = 7\cdot 10^3 + 3\cdot10^2 + 8\cdot 10^1 + 4\cdot 10^0\]

Každé číslo v desítkové soustavě jsme schopni popsat stejným způsobem, přitom jednotlivé sčítance mají tvar x · 10i, kde x je číslice od 0 do 9, těchto číslic je deset. Hodnota i je pak nějaké kladné celé číslo, které udává řád. Pokud i = 0, pak sčítanec udává jednotky, pokud i = 2, pak udává stovky (protože 102 = 100).

Zkusme si teď převést číslo 7348 z desítkové soustavy do, eh…, desítkové soustavy. Bude to mít smysl. Číslo 7348 budeme dělit 10:

\[\begin{eqnarray}7348 : 10 &= 734 & \longrightarrow 8 \quad(\mbox{zbytek po dělení})\\734 : 10 &= 73 & \longrightarrow 4\\73 : 10 &= 7 & \longrightarrow 3\\7 : 10 &= 0 & \longrightarrow 7\\\end{eqnarray}\]

Pokud přečteme zbytky od spodu, máme číslo 7348 – zpět původní číslo, které jsme se snažili převést do … stejné soustavy.

Pokud chceme popsat dvojkovou soustavu, uděláme to úplně stejně – všechny sčítance budou ve tvaru x · 2i, kde x je číslice 0 nebo 1. Hodnota i opět udává řády. Stejně, jako postupné dělení desítou nám dá počty řádů v čísle v desítkové soustavě, tak postupné dělení dvěma nám dá počty řádů ve dvojkové soustavě.

Zároveň si všimněte, že když dělíme číslo deseti a ptáme se na zbytek, tak tento zbytek bude vždy v intervalu \(\left<0, 9\right>\). Pokud dělíme číslo dvěma, tak zbytek může být buď 0 nebo 1.

Převod do jiných soustav #

Předchozí postup na převod z desítkové do binární soustavy je natolik univerzální, že lze použít i na jiné soustavy. Pokud chceme převést číslo 185 do šestnáctkové soustavy, jen dělíme 16:

\[\begin{eqnarray}185 : 16 &= 11 &\longrightarrow 9\quad(\mbox{zbytek po dělení})\\11 : 16 &= 0 &\longrightarrow 11\end{eqnarray}\]

Číslo 185 by v 16 soustavě mělo tvar (11, 9). Místo „číslic“ nad 9 se obvykle používají písmena, takže 10 = A, 11 = B, 12 = C, … Můžeme tak napsat, že číslo 185 má v 16 soustavě tvar B9.

Podobně můžeme převést číslo B9 z 16 soustavy do desítkové.

\[B9_{10} = 11\cdot 16^1 + 9\cdot 16^0 = 11\cdot16+9=185\]

Online nástroj na převod soustav #