Das Oktale Zahlensystem
Basis-8 verstehen
Oktal kennenlernenOktal (Basis-8) bildet eine Brücke zwischen Binär und menschlicher Lesbarkeit. Obwohl Hexadezimal es in der modernen Informatik weitgehend ersetzt hat, bleibt Oktal bei Unix-Dateiberechtigungen und in einigen Programmierkontexten wichtig. Das Verständnis von Oktal gibt Einblick in das Design von Zahlensystemen und die Computergeschichte.
Wie Oktal funktioniert
Stellenwerte
Jede Position ist eine Potenz von 8:
- ...512, 64, 8, 1 (8³, 8², 8¹, 8⁰)
Beispiel: 752 (oktal)
- 7 × 64 = 448
- 5 × 8 = 40
- 2 × 1 = 2
- Summe = 490 (dezimal)
Warum nur 0-7?
Wenn 8 erreicht wird, erfolgt ein Übertrag in die nächste Position:
- Dezimal 7 = 7 oktal
- Dezimal 8 = 10 oktal
- Dezimal 9 = 11 oktal
Oktal-Dezimal-Vergleich
| Dezimal | Oktal | Binär |
|---|---|---|
| 0 | 0 | 000 |
| 5 | 5 | 101 |
| 7 | 7 | 111 |
| 8 | 10 | 1000 |
| 10 | 12 | 1010 |
| 16 | 20 | 10000 |
| 64 | 100 | 1000000 |
| 100 | 144 | 1100100 |
| 255 | 377 | 11111111 |
| 512 | 1000 | 1000000000 |
Oktal und Binär
Die zentrale Beziehung: Jede Oktalziffer entspricht genau 3 Binärziffern.
Oktal zu Binär
Jede Ziffer in 3 Bits umwandeln:
- 0 = 000, 1 = 001, 2 = 010, 3 = 011
- 4 = 100, 5 = 101, 6 = 110, 7 = 111
Beispiel: 752 (oktal) zu Binär
- 7 = 111
- 5 = 101
- 2 = 010
- Ergebnis: 111101010
Binär zu Oktal
Bits in Dreiergruppen von rechts einteilen:
- 111101010 → 111 | 101 | 010 → 7 5 2
Oktal in Unix-Dateiberechtigungen
Die häufigste moderne Verwendung von Oktal sind Unix/Linux-Dateiberechtigungen.
Berechtigungsbits
- r (Lesen): 4
- w (Schreiben): 2
- x (Ausführen): 1
Drei Kategorien
- Eigentümer: Erste Ziffer
- Gruppe: Zweite Ziffer
- Andere: Dritte Ziffer
Häufige Berechtigungen
| Oktal | Bedeutung | Symbol |
|---|---|---|
| 755 | Eigentümer: alle, Andere: Lesen+Ausführen | rwxr-xr-x |
| 644 | Eigentümer: Lesen+Schreiben, Andere: Lesen | rw-r--r-- |
| 777 | Alle: alle Berechtigungen | rwxrwxrwx |
| 600 | Eigentümer: nur Lesen+Schreiben | rw------- |
Geschichte: Warum Oktal?
Frühe Informatik
- Einige frühe Computer hatten 12-, 24- oder 36-Bit-Wörter
- Diese sind gleichmäßig durch 3 teilbar
- Oktal bot eine saubere Darstellung
- PDP-8 (12-Bit) und PDP-10 (36-Bit) verwendeten Oktal umfassend
Der Wechsel zu Hexadezimal
- 8-Bit-Bytes wurden Standard (IBM 360)
- 8 Bits = 2 Hex-Ziffern (perfekte Passung)
- 8 Bits = 2,67 Oktalziffern (ungünstig)
- Hex setzte sich für die meisten Zwecke durch
Oktal in der Programmierung
Notation
- C/C++/JavaScript: Führende 0 (gefährlich!)
- Python 3: 0o-Präfix (eindeutig)
- Einige Sprachen: 0o oder @
Die Gefahr führender Nullen
In C und JavaScript:
010= 8 (oktal!), nicht 100777= 511 (häufig für Berechtigungen)
Dies verursacht Fehler, wenn versehentlich 010 geschrieben wird und Dezimal 10 erwartet wird.
Moderne Praxis
- Python 3 erfordert das explizite 0o-Präfix
- Viele Stilrichtlinien raten von implizitem Oktal ab
- Oktale Literale werden hauptsächlich für Dateiberechtigungen verwendet
Dezimal in Oktal umwandeln
Methode: Wiederholte Division durch 8
- Durch 8 teilen, Rest notieren
- Quotienten durch 8 teilen, Rest notieren
- Wiederholen bis Quotient 0 ist
- Reste von unten nach oben lesen
Beispiel: 500 (dezimal) in Oktal
| Division | Quotient | Rest |
|---|---|---|
| 500 ÷ 8 | 62 | 4 |
| 62 ÷ 8 | 7 | 6 |
| 7 ÷ 8 | 0 | 7 |
Ergebnis: 764 (oktal)
Fazit
Oktal (Basis-8) war historisch in der Informatik wichtig, als Wortlängen Vielfache von 3 Bits waren. Obwohl Hexadezimal es für den allgemeinen Gebrauch weitgehend ersetzt hat, bleibt Oktal für Unix-Dateiberechtigungen unverzichtbar und taucht gelegentlich in Altsystemen auf. Die zentrale Erkenntnis ist, dass jede Oktalziffer genau 3 Binärbits darstellt, was die Umwandlung unkompliziert macht. Das Verständnis von Oktal hilft bei der Arbeit mit Unix-Systemen, dem Lesen von Legacy-Code oder dem Studium der Computergeschichte.