Kaheksakohaline numbrisüsteem ehk oktaalsüsteem on aluselt 8 (baas 8) numbrite süsteem. Selles kasutatakse sümboleid 0 kuni 7. See süsteem on sarnane binaarsüsteemiga (baas 2) ja heksadetsimaalsüsteemiga (baas 16). Oktaalarvude tähistamisel kasutatakse sageli eesliidet või markeerijat — näiteks o04 või o1242; sama tähistust võib näha ka alamindeksiga, nt 12428. Mõnikord kirjutatakse oktaalarv eesnolliga (näiteks programmeerimises C keeles) või nüüdisaegsemalt prefiksiga 0o (näiteks 0o755).
Mida tähendab oktaal ja kuidas see töötab
Iga oktaalarvu positsioon vastab 8 astmele ehk koefitsientidele 8^0, 8^1, 8^2 jne. Näiteks oktaalarv 12428 loetakse kui 1·8^3 + 2·8^2 + 4·8^1 + 2·8^0. Kuna igas kohakohas on võimalikud ainult väärtused 0–7, tuleb aritmeetikas üle kandmisel ja liitmisel arvestada baasi 8 ületamisega (st kandme teke kui summa ≥ 8).
Muutmine ja teisendamine
- Oktaalist kümnendsüsteemi: korruta iga oktaalkoha väärtus 8 vastava astmega ja liida kokku. Näide: 12428 = 1·8^3 + 2·8^2 + 4·8^1 + 2·8^0 = 512 + 128 + 32 + 2 = 67410.
- Kümnendist oktaali: jaga kümnendarv 8-ga ja võta jäägid järjest alla; jäägide järjekord tagurpidi annab oktaalarvu.
- Oktaal ja binaar: iga oktaalnumbrile vastab täpselt kolm binaaritähte (3 bitti), kuna 8 = 2^3. Seetõttu saab kiiresti teisendada oktaalist binaari ja vastupidi, asendades iga oktaaldigi kolmekohalise binaarkoodiga. Näide: 12428 → 1(001) 2(010) 4(100) 2(010) = 001010100010₂ = 1010100010₂.
- Oktaal ja heks: esmalt teisenda oktaal binaari läbi 3-bitiste gruppide, seejärel grupeerige binaar 4-bitisteks plokkideks heksadetsimaalseks teisenduseks (vajadusel lisades vasakult nulli). Näide: 1010100010₂ = (pad vasakult → 0010 1010 0010₂) = 2A216.
Näited
- Lihtne näide: o04 = 4 kümnendsüsteemis.
- Näide teisendusega: o1242 = 12428 = 67410 = 1010100010₂ = 0x2A2.
- Aritmeetika: 7 + 1 oktaalis = 108 (sest 7 + 1 = 8, mis oktaalis väljendub kui 1·8 + 0).
- Programmide näide: UNIX/Linux faililubade tavapärane lühikirjutus kasutab oktaali — nt 755 tähendab kasutaja jaoks rwx (7), grupile rx (5) ja teistele rx (5). Programmis C tähistab eesnolla numbrit oktaalliteralina (nt 0755); tänapäevasem märge on 0o755.
Kasutus ja ajalugu
Oktaalsüsteemi kasutati varasemates arvutisüsteemides, eriti masinates ja süsteemides, mille sõnasuurus oli mitmik 3 bitist (näiteks 12-, 24-bitised arhidektuuri). Sellistel süsteemidel oli oktaal mugav, kuna iga oktaaldigit vastas täpselt kolmele binaarsisendile. Kui üldine liikumine arvutiarhitektuuris läks üle 32- ja 64-bitistele sõnadele ning üha enam hakati kasutama 4-bittist grupeerimist, muutus heksadetsimaalsüsteem praktilisemaks ja levinumaks.
Lisaks tehnilisele kasutusele esineb oktaal ka kultuurilistes ja keelelistes kontekstides. Mõned rühmad, näiteks indiaanlased, kes räägivad Yuki-keelt (keele viide) Californias ja teatud pamea keeled Mehhikos, on kasutusele võtnud oktaalse loendussüsteemi. Seda võib seletada loendamise viisiga: nad loevad sageli sõrmede vahelisi tühikuid (sõrmedevahelisi) ega loe iga üksikut sõrme, mis annab loomuliku baasiks kaheksale.
Kokkuvõte ja praktilised näpunäited
- Oktaal kasutab sümboleid 0–7 ja on baasilt 8.
- Kiire teisenduse jaoks: oktaal → binaar = asenda iga oktaaldigi 3-bitise binaarkoodiga; binaar → oktaal = grupeerige 3-bitisteks plokkideks paremalt vasakule.
- Programmeerimises olge tähelepanelik literalide tähistuse suhtes: erinevates keeltes võib oktaal olla tähistatud erinevalt (nt 0 eesliide C-s, 0o prefiks Pythonis ja muudes keeltes).
- Kuigi tänapäeval on heksadetsimaalsel süsteemil paljudes rakendustes suurem roll, on oktaal endiselt oluline ajaloolise tähenduse, spetsiifiliste süsteemide ja mõnede praktiliste väljenduste (nt failiload) tõttu.