Java bietet Möglichkeiten zum Schreiben numerischer Literale in den Basen 2, 8, 10 und 16.
Ich frage mich, warum Basis 8 enthalten ist, z int x = 0123;
.
Ich denke, dass es etwas Ähnliches wie die Tatsache geben könnte, dass die Kapazität eines Bytes hexadezimal FF + 1 ist und so weiter.
Antworten:
Diese Antwort wurde für die ursprüngliche Frage geschrieben: "Warum ist das Schreiben einer Zahl in Basis 8 nützlich?"
Es war, die Sprache denen bekannt zu machen, die C usw. kannten. Dann ist die Frage, warum man sie in diesen unterstützt!
Es gab Architekturen (verschiedene PDPs), die 18 Bit breite Wörter verwendeten (und andere verwendeten 36 Bit Wörter), so dass Literale mit einer 3 Bit breiten Ziffer nützlich wären.
Praktisch nur, vergebe ich habe es in Java - Code verwendet gesehen ist für UNIX-Berechtigungen Angabe, zB
0777
,0644
usw.(Die ironische Antwort darauf, warum es unterstützt wird, lautet "Upvotes zu dieser Frage ").
quelle
"Die Oktalzahlen sind nicht mehr so häufig wie früher. Octal wird jedoch verwendet, wenn die Anzahl der Bits in einem Wort ein Vielfaches von 3 ist. Es wird auch als Abkürzung für die Darstellung von Dateiberechtigungen auf UNIX-Systemen und die Darstellung von verwendet UTF8-Nummern usw. "
Von: https://www.tutorialspoint.com/octal-number-system
quelle
Geschichte des Computers (Wissenschaft). Um eine Gruppe von Bits darzustellen, passt eine Basis 10 nicht, Basis 8 = 2 3 für 3 Bits und Basis 16 = 2 4 für 4 Bits passen besser.
Der Vorteil von Basis 8 ist, dass alle Ziffern wirklich Ziffern sind: 0-7, während Basis 16 "Ziffern" 0-9A-F hat.
Für 8 Bits einer Byte-Basis ist 16 (hexadezimal) besser geeignet und gewonnen. Bei Unix-Basis 8-Oktal wird häufig noch für
rwx
Bits (Lesen, Schreiben, Ausführen) für Benutzer, Gruppen und andere verwendet. daher Oktalzahlen wie 0666 oder 0777.Hexadezimal ist allgegenwärtig, nicht zuletzt, weil die Wortgröße der Computer heutzutage mehrere Bytes beträgt. Dass das 8-Bit
byte
zum Standard wurde, ist eine andere, schwierige Geschichte (2 3 Bit und Adressierung).quelle
Allgemeine Verwendung von Octal
Als Abkürzung für Binär: Für Rechenmaschinen (wie UNIVAC 1050, PDP-8, ICL 1900 usw.) wurde Octal als Abkürzung für Binär verwendet, da ihre Wortgröße durch drei teilbar ist (jede Oktalziffer steht für drei Binärzahlen) Ziffern). Zwei, vier, acht oder zwölf Ziffern könnten also ein ganzes Maschinenwort präzise anzeigen. Außerdem konnten die Kosten gesenkt werden, indem Nixie-Röhren, Sieben-Segment-Anzeigen und Taschenrechner für die Bedienerkonsolen verwendet wurden, bei denen die Verwendung von Binäranzeigen zu komplex war, Dezimalanzeigen komplexe Hardware zum Konvertieren von Radices und hexadezimale Anzeigen zum Anzeigen von mehr Ziffern benötigten .
16-, 32- oder 62-Bit-Wortdarstellung:Alle modernen Computerplattformen verwenden 16-, 32- oder 64-Bit-Wörter, die weiter in 8-Bit-Bytes unterteilt sind. Auf solchen Systemen wären drei Oktalstellen pro Byte erforderlich, wobei die höchstwertige Oktalstelle zwei Binärziffern darstellt (plus ein Bit des nächsten signifikanten Bytes, falls vorhanden). Die oktale Darstellung eines 16-Bit-Wortes erfordert 6 Ziffern, aber die höchstwertige oktale Ziffer repräsentiert (ziemlich unelegant) nur ein Bit (0 oder 1). Diese Darstellung bietet keine Möglichkeit, das höchstwertige Byte leicht zu lesen, da es über vier Oktalstellen verschmiert ist. Daher wird Hexadezimal heutzutage in Programmiersprachen häufiger verwendet, da zwei hexadezimale Ziffern genau ein Byte angeben. Einige Plattformen mit einer Wortgröße von zwei Potenzen verfügen immer noch über Befehlsunterwörter, die leichter zu verstehen sind, wenn sie in Oktalform angezeigt werden. Dies umfasst die PDP-11- und Motorola 68000-Familie. Die heutige allgegenwärtige x86-Architektur gehört ebenfalls zu dieser Kategorie, aber Oktal wird auf dieser Plattform selten verwendet.
Codierungsbeschreibungen: Bestimmte Eigenschaften der binären Codierung von Opcodes in der modernen x86-Architektur werden leichter sichtbar, wenn sie in Oktal angezeigt werden, z. B. das ModRM-Byte, das in Felder mit 2, 3 und 3 Bit unterteilt ist, sodass Oktal bei der Beschreibung hilfreich sein kann diese Kodierungen.
Berechnungen und Dateizugriffsberechtigungen: Octal wird manchmal beim Rechnen anstelle von Hexadezimal verwendet, möglicherweise am häufigsten in der heutigen Zeit in Verbindung mit Dateiberechtigungen unter Unix-Systemen (Beim Berechtigungszugriff auf chmod). Es hat den Vorteil, dass keine zusätzlichen Symbole als Ziffern erforderlich sind (das Hexadezimalsystem ist Basis-16 und benötigt daher sechs zusätzliche Symbole über 0–9 hinaus).
Digitale Anzeigen: Oktalzahlen werden auch zum Anzeigen digitaler Inhalte auf einem Bildschirm verwendet, da weniger Symbole für die Darstellung verwendet werden.
Grafische Darstellung von Byte-Strings: Einige Programmiersprachen (C, Perl, Postscript usw.) haben eine Darstellung von Texten / Grafiken in Octal mit dem Escapezeichen \ nnn. Die Oktaldarstellung ist besonders praktisch bei Nicht-ASCII-Bytes von UTF-8, die Gruppen von 6 Bits codieren und bei denen jedes Startbyte den Oktalwert \ 3nn und jedes Fortsetzungsbyte den Oktalwert \ 2nn hat.
Frühe Gleitkomma-Arithmetik: Octal wurde auch für Gleitkomma in den Computern Ferranti Atlas (1962), Burroughs B5500 (1964), Burroughs B5700 (1971), Burroughs B6700 (1971) und Burroughs B7700 (1972) verwendet.
In Transpondern: Flugzeuge senden einen Code, der als vieroktalstellige Zahl ausgedrückt wird, wenn er vom Bodenradar abgefragt wird. Dieser Code wird verwendet, um verschiedene Flugzeuge auf dem Radarschirm zu unterscheiden.
Weitere Lesungen: https://en.wikipedia.org/wiki/Octal
quelle