Oktaltalsystemet är ett system med 8 siffror i basen. Det använder siffrorna 0 till 7. Systemet liknar binärt (bas 2) och hexadecimalt (bas 16). Oktalsiffror skrivs med bokstaven o före siffran, till exempel o04 eller o1242. Oktalsiffror skrivs också ibland med en liten 8 längst ned till höger, som i 12428.

En gång i tiden användes oktalsystemet främst för arbete med datorer. Det var ett enklare sätt att arbeta med binära tal. När datorerna övergick från att använda 24-bitarssystem till 32- och 64-bitarssystem ersatte hexadecimaltal oktal för de flesta användningsområden. Vissa grupper, t.ex. indianer som använder Yuki-språket i Kalifornien och Pamean-språken i Mexiko, använder också ett oktalt talsystem. De gör detta eftersom de när de räknar använder sig av mellanrummen mellan fingrarna i stället för att räkna de faktiska fingrarna.

Grundläggande egenskaper

Bas och siffror: Oktalsystemet är ett positionssystem med basen 8. Varje platsvärde motsvarar en potentiation av 8 (1, 8, 8² = 64, 8³ = 512 osv.). Siffrorna som används är 0, 1, 2, 3, 4, 5, 6 och 7.

Notationer: Vanliga sätt att ange att ett tal är i oktal är:

  • Subscript 8: 12428
  • Prefix i vissa programmeringsspråk: 0o755 (Python)
  • Ledande nolla i äldre C- och Unix-sammanhang: 0755 (kan vara förvirrande eftersom ledande nolla historiskt angav oktal)
  • I text kan man ibland se ett litet o framför talet (som i originalexemplet: o04).

Relation till binärt och hexadecimalt

En oktaldigit = 3 binära bitar. Varje oktalsiffra motsvarar exakt tre binära bitar (000 = 0, 001 = 1, …, 111 = 7). Därför går det enkelt att konvertera mellan binärt och oktalt genom att dela binärtalet i grupper om tre bitar från höger.

Exempel:

  • Binärt 101101 = dela i grupper: 101 101 → 5 5 → oktalt 558.
  • Oktalt 3778 → binärt 111 111 111 = 11111111 (vilket är 255 decimalt) → hexadeximalt FF.

Varför hex ersatte ofta oktal i datorer: När maskinordens längder blev 8, 16, 32 och 64 bitar passade hex (4 bitar per hex-siffra) bättre eftersom 4 delar jämnt in i 8, 16, 32 och 64 men 3 (oktals 3-bitarsgrupper) inte alltid gör det. Tidigare maskiner med ordlängder som var multiplar av 3 (t.ex. 12- eller 24-bitarsmaskiner, såsom vissa äldre DEC-maskiner) använde ofta oktal eftersom det matchade intern binär struktur bättre.

Konvertering mellan oktalt och decimalt (enkla metoder)

För att konvertera ett oktalt tal till decimalt multiplicerar du varje siffra med 8^position och summerar:

Exempel: 1248 = 1·8² + 2·8¹ + 4·8⁰ = 1·64 + 2·8 + 4·1 = 64 + 16 + 4 = 84 (decimalt).

För att konvertera decimalt till oktalt dividerar du med 8 och tar restarna:

Exempel: 83 dec → 83/8 = 10 r 3, 10/8 = 1 r 2, 1/8 = 0 r 1 → skriv rester bakifrån → 1238.

Grundläggande oktalaritmetik

Reglerna för addition, subtraktion, multiplikation och division är desamma som i andra positionssystem; bara basen är 8. Vid addition får du en överföring (carry) när summan av kolumnen når 8 eller mer.

Exempel på addition:

o12 + o7 = 128 + 78 = (10 dec) + (7 dec) = 17 dec = 218

Notera att i kolumner räknar man upp till 7 och vid 8 skriver man 0 och för över 1 till nästa plats.

Praktiska användningsområden

  • Datorhistoria: Många äldre maskiner och assemblermiljöer använde oktal för att representera instruktioner och adresser eftersom deras ordstorlekar matchade 3-bitarsgrupper (t.ex. PDP-8 och andra tidiga minidatorer).
  • Unix-filsystem: Oktala tal används fortfarande praktiskt som ett bekant format för filbehörigheter i Unix/Linux (t.ex. 755 = rwxr-xr-x, 644 = rw-r--r--).
  • Programmering: Vissa språk stöder oktalnotation (t.ex. 0o755 i Python). Observera att ledande nollor i äldre C-kod kan tolkas som oktal vilket kan leda till buggar (t.ex. 09 är ogiltigt i oktal).
  • Språk och kultur: Flera språkgrupper har historiskt använt 8-baserade talsystem av fysiologiska skäl — att räkna mellan fingerlederna (mellanrummen mellan fingrarna) istället för fingrarna själva ger naturligt en uppsättning om åtta räkningsenheter.

Sammanfattning

Oktalsystemet är ett användbart positionssystem med bas 8 som har haft stor betydelse i datorsammanhang historiskt och fortfarande syns i vissa praktiska tillämpningar (t.ex. Unix-behörigheter). Det är nära relaterat till binärt genom den enkla regeln 1 oktaldigit = 3 bitar, vilket gör konverteringar raka och överskådliga. I modern datorteknik har hexadecimalt system blivit vanligare på grund av dagens ordlängders delbarhet med 4, men oktal lever kvar i både kulturhistoria och vissa tekniska nischer.