1) Převod z libovolné soustavy do desítkové
Číslo v soustavě se základem Z převedeme na desítkové tak, že sečteme součin každé cifry a odpovídající mocniny základu – dosadíme do vzorce z minulé lekce:
\begin{aligned} \quad (\textcolor{red}{3}\textcolor{blue}{A}\textcolor{green}{5})_{\textcolor{violet}{16}} & = \overbrace{(\textcolor{red}{3}\,\textcolor{orange}{00})_{\textcolor{violet}{16}}}^{\textcolor{orange}{2~nuly}~\Rightarrow ~\textcolor{violet}{16}^{\textcolor{orange}{2}}} \;+\; \overbrace{(\textcolor{blue}{A}\,\textcolor{orange}{0})_{\textcolor{violet}{16}}}^{\textcolor{orange}{1~nula}~\Rightarrow ~\textcolor{violet}{16}^{\textcolor{orange}{1}}} \;+\; \overbrace{(\textcolor{green}{5})_{\textcolor{violet}{16}}}^{\textcolor{orange}{0~nul}~\Rightarrow ~\textcolor{violet}{16}^{\textcolor{orange}{0}}} \\ &= \textcolor{red}{3}\cdot \textcolor{violet}{16}^{\textcolor{orange}{2}} + \textcolor{blue}{10}\cdot \textcolor{violet}{16}^{\textcolor{orange}{1}} + \textcolor{green}{5}\cdot \textcolor{violet}{16}^{\textcolor{orange}{0}} \\ &= \textcolor{red}{3}\cdot 256 + \textcolor{blue}{10}\cdot 16 + \textcolor{green}{5} \cdot 1 \\ & = (933)_{10} \end{aligned}
Také lze postupovat po číslicích zleva doprava a střídavě násobit základem a sčítat:
\begin{aligned} \quad (\textcolor{red}{3}\textcolor{blue}{A}\textcolor{green}{5})_{\textcolor{violet}{16}} &= ((\textcolor{red}{3}\cdot 16) + \textcolor{blue}{10})\cdot 16 + \textcolor{green}{5} \\ &= (48 + \textcolor{blue}{10})\cdot 16 + \textcolor{green}{5} \\ &= 58\cdot 16 + \textcolor{green}{5} \\ &= 928 + \textcolor{green}{5} \\ & = (933)_{10} \end{aligned}
Tento alternativní postup se používá například při programování převodu textové podoby čísla na jeho hodnotu.
Interaktivní cvičení
—
v základu
—
převeď do desítkové soustavy
Správně:
0
2) Převod z desítkové do libovolného základu
Použijeme opakované dělení základem Z se zbytkem a poté zbytky „sesbíráme“ od konce (v opačném pořadí).
Jedná se vlastně o opačný postup k alternativnímu převodu do desítkové soustavy.
\begin{gathered} 933_{10}~\to~(?)_{16} \\[1.5em] \begin{aligned} 933 \div 16 &= 58 &\text{ zbytek } &5\\ 58 \div 16 &= 3 &\text{ zbytek } &10 &(A)\\ 3 \div 16 &= 0 &\text{ zbytek } &3\\ \end{aligned} \\[3em] \Rightarrow (3A5)_{16} \end{gathered}
Interaktivní cvičení:
—
do základu —
Správně: 0
3) Převod dvou libovolných základů
Pro převod mezi dvěma různými libovolnými základy je nejsnazší použít postupně oba předchozí postupy:
- nejdřív do desítkové,
- pak z desítkové do cílové
\begin{gathered} (110101)_2 \to (?)_{7} \\[1.5em] \quad\text{Krok 1: }\\ (110101)_2 =(53)_{10} \\[1.5em] \quad\text{Krok 2: }\\ (53)_{10} =(104)_{7} \end{gathered}
4) Převody mezi soustavami se základy mocnin 2 (např. 8 ↔ 2 ↔ 16)
Pokud jsou oba základy 4, 8, nebo 16, lze snadno převádět „blokově“ z hlavy přes dvojkovou soustavu.
Stačí si v hlavě „zažít“ převod maximálně čtyřciferných dvojkových čísel do těchto základů – buď naučením tabulky zpaměti nebo dělením na součet číslic 8,4,2,1.
\text{Př. 16}\to\text{2:}\\C_{16}=12_{10}=1\cdot8+1\cdot4+0\cdot2+0\cdot1=1100_2
\text{Př. 2}\to\text{16:}\\[1em] \begin{gathered} \def\arraystretch{1.5} \begin{array}{ccccc} & 1 & 0 & 1 & 0 \\ \cdot & 8 & 4 & 2 & 1 \\ \hline & 8 & 0 & 2 & 0 \\ \end{array} \\[1.5em] 8 + 0 + 2 + 0 = 10_{10} = A_{16} \end{gathered}
Postupujeme následovně:
- Každou cifru samostatně převedeme do dvojkové soustavy.
- Vzniklé dvojkové skupiny spojíme.
- Spojené dvojkové číslo rozsekáme od konce na skupiny po log_2(Z) podle základu cílové soustavy.
- Každou skupinu převedeme samostatně na cifru v cílové soustavě.
Ukažme si to na příkladu (\textcolor{red}{5}\textcolor{green}{7}\textcolor{blue}{2})_8 \to (?)_{16}:
Krok 1) Převedeme cifry do dvojkové soustavy. Protože 8=2^3, bude mít každá osmičková cifra ve dvojkové soustavě tři číslice (bity).
\textcolor{red}{\overbrace{101}^{5}}\,\textcolor{green}{\overbrace{111}^{7}}\,\textcolor{blue}{\overbrace{010}^{2}}
Krok 2) Skupiny spojíme. Tím dostaneme číslo ve dvojkové soustavě.
(\textcolor{red}{101}\textcolor{green}{111}\textcolor{blue}{010})_2
Krok 3) Chceme číslo v šestnáctkové soustavě. Protože 16=2^4, bude mít každá šestnáctková cifra ve dvojkové soustavě čtyři číslice (bity) – rozsekáme číslo od konce po čtveřicích. Pokud nám chybí číslice, doplníme zleva nuly (v příkladu černou barvou).
000\textcolor{red}{1}\,|\,\textcolor{red}{01}\textcolor{green}{11}\,|\,\textcolor{green}{1}\textcolor{blue}{010}
Krok 4) Každou čtveřici převedeme na šestnáctkovou číslici.
\overbrace{000\textcolor{red}{1}}^{1}\,|\,\overbrace{\textcolor{red}{01}\textcolor{green}{11}}^{7}\,|\,\overbrace{\textcolor{green}{1}\textcolor{blue}{010}}^{10}=(17A)_{16}
Interaktivní cvičení:
—
ze základu
—
do základu
—
Správně: 0