Osmičková (oktalová, oktální) soustava je číselná soustava o základu 8, která (v tradičním zápisu) může obsahovat cifry 0, 1, 2, 3, 4, 5, 6 a 7.
Díky tomu, že je oktální soustava snadno převeditelná do binární soustavy (8 je mocninou dvojky), často se používala v oblasti informatiky. Příkladem může být nastavení přístupových práv v operačních systémech unixového typu.
Metoda postupného dělení 8 je používána pro převod celých čísel v desítkové soustavě do soustavy osmičkové a spočívá v postupném dělení číslem 8. Původní číslo celočíselně vydělíme číslem 8 a zvlášť si zapisujeme zbytky po tomto dělení – označme je jako Z b i {\displaystyle Zb_{i}} , kde i {\displaystyle i} značí pořadí zbytku. Vzniklý podíl dále dělíme číslem 8 (a zapisujeme si zbytky po dělení) dokud podíl není roven nule. Po skončení dělení dostaneme číslo v osmičkové soustavě zapsáním pořadí zbytků v opačném pořadí (protože číslo zapisujeme zprava doleva, ale čteme zleva doprava)
Například: Mějme číslo 900 v desítkové soustavě, které chceme převést do osmičkové soustavy. Nechť symbol d i v {\displaystyle div} znamená celočíselné dělení.
900 div 8 = 112 a Z b 0 {\displaystyle Zb_{0}}
= 4112 div 8 = 14 a Z b 1 {\displaystyle Zb_{1}}
= 014 div 8 = 1 a Z b 2 {\displaystyle Zb_{2}}
= 61 div 8 = 0 a Z b 3 {\displaystyle Zb_{3}}
= 1Zbytky po dělení zapisujeme zprava doleva – avšak číslo čteme zleva doprava. (Pořadí zbytků po dělení je 4, 0, 6, 1 ale zapisujeme je v pořadí 1, 6, 0, 4)
Výsledkem je: (900)10 = (1604)8
Vybrané zlomky v osmičkové soustavě (1/2)10 = (0,4)8 (1/4)10 = (0,2)8 (1/8)10 = (0,1)8 (1/10)10 = (0,06341634163416341...)8 (1/16)10 = (0,04)8 (1/20)10 = (0,0314631463146...)8Převod z osmičkové soustavy do desítkové je konkrétním použitím obecného vztahu ∑ i = 0 n ( a i × B i ) . {\displaystyle \sum _{i=0}^{n}\left(a_{i}\times B^{i}\right).}
Například: Mějme číslo 2007 v osmičkové soustavě, které chceme převést do soustavy desítkové. Úpravou obecného vztahu do podoby ∑ i = 0 n ( a i × 8 i ) {\displaystyle \sum _{i=0}^{n}\left(a_{i}\times 8^{i}\right)} získáváme efektivní nástroj pro převod. (Opět pamatujme že číslo je zapsáno zprava doleva)
∑ i = 0 n ( a i × 8 i ) = 7 × 8 0 + 0 × 8 1 + 0 × 8 2 + 2 × 8 3 = 1031 {\displaystyle \sum _{i=0}^{n}\left(a_{i}\times 8^{i}\right)=7\times 8^{0}+0\times 8^{1}+0\times 8^{2}+2\times 8^{3}=1031}
Výsledkem je: (2007)8 = (1031)10
Převod mezi těmito soustavami je značně ulehčen díky tomu, že číslo 8 je mocninou dvojky. Jednoduše nahradíme každou číslici za její binární reprezentaci. Pro převod můžeme s výhodou použít následující tabulky:
Osmičková číslice | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Binární reprezentace | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Například: Převod čísla (1572)8 do dvojkové (binární) soustavy.
1 = 001
5 = 101
7 = 111
2 = 010
Výsledkem je: (1572)8 = (001101111010)2
Převod je opět poměrně jednoduchý – zápis čísla v binární soustavě rozdělíme na skupiny po 3 bitech a pomocí předchozí tabulky převedeme na číslo v osmičkové soustavě.
Například: Převod čísla (011 111 011 000)2 do osmičkové soustavy.
011 = 3
111 = 7
011 = 3
000 = 0
Výsledkem je: (011 111 011 000)2 = (3730)8
Převod mezi těmito dvěma soustavami je řešen pomocí 2 kroků. V prvním kroku převedeme číslo v osmičkové soustavě do soustavy binární, které ve druhém kroku převedeme do soustavy hexadecimální.
Tento převod je také řešen pomocí 2 kroků, kdy v prvním kroku převedeme číslo v hexadecimální soustavě do soustavy binární a následně provedeme převod z binární do osmičkové soustavy.
Číselná soustava (základ) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
10 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 16 | 20 | 36 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
3 | 11 | 10 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
4 | 100 | 11 | 10 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
5 | 101 | 12 | 11 | 10 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
6 | 110 | 20 | 12 | 11 | 10 | 6 | 6 | 6 | 6 | 6 | 6 | 6 |
7 | 111 | 21 | 13 | 12 | 11 | 10 | 7 | 7 | 7 | 7 | 7 | 7 |
8 | 1000 | 22 | 20 | 13 | 12 | 11 | 10 | 8 | 8 | 8 | 8 | 8 |
9 | 1001 | 100 | 21 | 14 | 13 | 12 | 11 | 10 | 9 | 9 | 9 | 9 |
10 | 1010 | 101 | 22 | 20 | 14 | 13 | 12 | 11 | A | A | A | A |
100 | 1100100 | 10201 | 1210 | 400 | 244 | 202 | 144 | 121 | 84 | 64 | 50 | 2S |
1000 | 1111101000 | 1101001 | 33220 | 13000 | 4344 | 2626 | 1750 | 1331 | 6B4 | 3E8 | 2A0 | RS |