Přeskočit na obsah

Osmičková soustava

Z Infopedia
Rozbalit box

Obsah boxu

Šablona:Infobox Číselná soustava

Osmičková soustava (též oktalová soustava nebo oktální soustava) je číselná soustava o základu 8. Pro zápis čísel používá osm číslic: 0, 1, 2, 3, 4, 5, 6 a 7. Díky svému úzkému vztahu k dvojkové soustavě nalezla historicky významné uplatnění v informatice, zejména v éře sálových počítačů a v systémech odvozených od Unixu.

Čísla v osmičkové soustavě se pro odlišení od jiných soustav obvykle označují dolním indexem 8 (např. 175₈) nebo v některých programovacích jazycích (například C, Java, Python) prefixem `0` (např. `0175`).

📜 Historie a použití

Osmičková soustava byla populární v raných fázích vývoje počítačů, kdy se používaly strojové instrukce a paměťové adresy s délkou slova dělitelnou třemi, například 6, 12, 24 nebo 36 bitů. Pro tyto architektury (např. sálové počítače IBM nebo minipočítače PDP-8) byla osmičková soustava přirozenější a čitelnější než šestnáctková, protože každá osmičková číslice přesně reprezentuje tři binární číslice (2³ = 8). Tím se zjednodušoval přepis dlouhých řetězců nul a jedniček do kompaktnější a pro člověka srozumitelnější podoby.

S přechodem na architektury založené na 8bitových bajtech (a jejich násobcích jako 16, 32 a 64 bitů) začala dominovat šestnáctková soustava, kde jedna číslice reprezentuje čtyři bity (jeden nibble). Přesto si osmičková soustava zachovala specifické využití. Jejím nejznámějším současným uplatněním je reprezentace práv souborů v Unixu a odvozených operačních systémech jako Linux nebo macOS. Příkaz chmod používá trojici osmičkových číslic k nastavení práv pro vlastníka, skupinu a ostatní uživatele.

⚙️ Princip a zápis

Stejně jako desítková soustava, i osmičková je poziční číselná soustava. To znamená, že hodnota každé číslice závisí na její pozici v čísle. Každá pozice odpovídá mocnině základu 8. Pozice se číslují zprava doleva, počínaje nultou mocninou.

Například číslo (372)₈ lze rozepsat jako součet mocnin osmičky:

(372)₈ = 3 × 8² + 7 × 8¹ + 2 × 8⁰
(372)₈ = 3 × 64 + 7 × 8 + 2 × 1
(372)₈ = 192 + 56 + 2 = (250)₁₀

Počítání v osmičkové soustavě probíhá následovně: 0, 1, 2, 3, 4, 5, 6, 7, 10 (což je 8 v desítkové), 11 (9), 12 (10), ..., 17 (15), 20 (16), ...

🔄 Převody mezi soustavami

Schopnost převádět čísla mezi osmičkovou, desítkovou a dvojkovou soustavou je klíčová pro pochopení jejího využití.

Z osmičkové do desítkové

Převod se provádí rozvojem čísla v osmičkové soustavě pomocí mocnin základu 8, jak bylo ukázáno výše. Každá číslice se vynásobí osmičkou umocněnou na příslušnou pozici a výsledky se sečtou.

Příklad: Převod čísla (416)₈ na desítkovou soustavu.

(416)₈ = 4 × 8² + 1 × 8¹ + 6 × 8⁰ = 4 × 64 + 1 × 8 + 6 × 1 = 256 + 8 + 6 = (270)₁₀

Z desítkové do osmičkové

Převod z desítkové soustavy se provádí metodou postupného dělení základem 8. Celá část desítkového čísla se opakovaně dělí osmi, dokud není výsledek nula. Zbytky po dělení, zapsané v opačném pořadí (od posledního k prvnímu), tvoří výsledné osmičkové číslo.

Příklad: Převod čísla (125)₁₀ na osmičkovou soustavu.

  • 125 ÷ 8 = 15, zbytek 5
  • 15 ÷ 8 = 1, zbytek 7
  • 1 ÷ 8 = 0, zbytek 1

Zbytky čtené odspodu nahoru dávají výsledek: (175)₈.

Vztah k binární soustavě

Největší výhoda osmičkové soustavy spočívá v jejím jednoduchém převodu do a z dvojkové (binární) soustavy. Protože 8 = 2³, každá osmičková číslice odpovídá přesně trojici binárních číslic (bitů).

Osmičková číslice Binární trojice
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Převod z osmičkové do binární: Každá osmičková číslice se nahradí odpovídající trojicí bitů.

  • Příklad: (372)₈ = (011 111 010)₂ = (11111010)₂ (úvodní nuly lze vynechat)

Převod z binární do osmičkové: Binární číslo se rozdělí na skupiny po třech bitech zprava doleva. Pokud levá skupina nemá tři bity, doplní se zleva nulami. Každá trojice se pak převede na odpovídající osmičkovou číslici.

  • Příklad: (10110110)₂
    • Rozdělení: (10 110 110)₂
    • Doplnění nul: (010 110 110)₂
    • Převod: (2 6 6)₈ = (266)₈

Vztah k šestnáctkové soustavě

Přímý převod mezi osmičkovou a šestnáctkovou (hexadecimální) soustavou není praktický. Nejjednodušší cestou je převod přes dvojkovou soustavu:

  • Osmičková → Šestnáctková: Číslo se převede na binární a následně se binární kód seskupí do čtveřic bitů, které se převedou na hexadecimální číslice.
  • Šestnáctková → Osmičková: Číslo se převede na binární a následně se binární kód seskupí do trojic bitů, které se převedou na osmičkové číslice.

💻 Využití v informatice

Přestože je dnes šestnáctková soustava dominantní, osmičková notace se stále používá v několika specifických oblastech.

Práva souborů v Unixu

Nejběžnější moderní použití je v unixových a linuxových systémech pro nastavení práv souborů pomocí příkazu `chmod`. Tři osmičkové číslice definují práva pro tři kategorie uživatelů:

  1. Vlastník (user)
  2. Skupina (group)
  3. Ostatní (others)

Každá číslice je součtem hodnot pro jednotlivá práva:

  • Čtení (read) = 4
  • Zápis (write) = 2
  • Spuštění (execute) = 1

Například `chmod 755 soubor.txt` nastaví následující práva:

  • 7 (4+2+1) pro vlastníka: čtení, zápis i spuštění (`rwx`)
  • 5 (4+0+1) pro skupinu: čtení a spuštění (`r-x`)
  • 5 (4+0+1) pro ostatní: čtení a spuštění (`r-x`)

Znakové sady a escape sekvence

Některé programovací jazyky, jako C, C++ nebo Perl, umožňují zápis znaků pomocí jejich osmičkového kódu v rámci escape sekvencí. Znak se zapíše jako zpětné lomítko následované až třemi osmičkovými číslicemi. Například znak 'A', který má v ASCII tabulce hodnotu 65₁₀ (což je 101₈), lze zapsat jako `\101`.

🤔 Pro laiky

Představte si, že máte jen osm prstů místo deseti. Když počítáte, po napočítání do sedmi (poslední prst) vám dojdou prsty. Co uděláte? Zapíšete si "jednu plnou sadu osmi prstů" (to je "1") a začnete počítat prsty od nuly znovu. Takže číslo, kterému my říkáme "osm", byste zapsali jako "10" (jedna osmička a nula navíc). Číslo "devět" by bylo "11" (jedna osmička a jeden navíc).

Osmičková soustava je tedy jen jiný způsob seskupování počítaných věcí. Místo skupin po desítkách (jako v naší běžné soustavě) používá skupiny po osmičkách. Pro počítače je tento systém užitečný, protože počítač uvnitř pracuje s dvojkovou soustavou (jen nuly a jedničky) a osm je přesně dvě na třetí (2×2×2). Díky tomu lze velmi snadno převádět mezi dlouhými řetězci nul a jedniček a kratšími, čitelnějšími osmičkovými čísly, kde každá číslice zastupuje přesně tři bity.


Šablona:Aktualizováno