Frage

Ich habe in meinem Code noch nie Oktalzahlen verwendet und bin auch noch nie auf einen Code gestoßen, der sie verwendet (trotz Hexadezimalzahlen und Bit-Twiddling).

Ich habe ungefähr 1994 angefangen, in C/C++ zu programmieren, also bin ich vielleicht zu jung dafür?Verwendet älterer Code Oktal?C unterstützt diese durch das Voranstellen einer 0, aber wo ist der Code, der diese Zahlenliterale zur Basis 8 verwendet?

War es hilfreich?

Lösung

Ich musste kürzlich Netzwerkprotokollcode schreiben, der auf 3-Bit-Felder zugreift.Octal ist praktisch, wenn Sie das debuggen möchten.

Können Sie mir zur Verdeutlichung sagen, was die 3-Bit-Felder davon sind?

0x492492

Andererseits dieselbe Zahl im Oktalformat:

022222222

Nun endlich binär (in 3er-Gruppen):

010 010 010 010 010 010 010 010

Andere Tipps

Der einzige Ort, an dem ich heutzutage auf Oktalliterale stoße, ist der Umgang mit den Berechtigungsbits für Dateien unter Linux, die normalerweise als drei Oktalziffern dargestellt werden, wobei jede Ziffer die Berechtigungen für den Dateieigentümer, die Gruppe bzw. andere Benutzer darstellt.

z.B.0755 (auch nur 755 bei den meisten Befehlszeilentools) bedeutet, dass der Dateieigentümer über vollständige Berechtigungen (Lesen, Schreiben, Ausführen) verfügt und die Gruppe und andere Benutzer lediglich Lese- und Ausführungsberechtigungen haben.

Durch die Darstellung dieser Bits in Oktalform lässt sich leichter herausfinden, welche Berechtigungen festgelegt sind.Sie können auf einen Blick erkennen, was 0755 bedeutet, nicht jedoch 493 oder 0x1ed.

Aus Wikipedia

Zu der Zeit, als Octal ursprünglich im Computer weit verbreitet wurde, verwendeten Systeme wie die IBM-Mainframes 24-Bit-Wörter (oder 36-Bit).Octal war für diese Maschinen eine ideale Abkürzung von Binäranlagen, da acht (oder zwölf) Ziffern ein ganzes maschinelles Wort präzise (jeweils drei Binärziffern abdecken) präsentiert werden konnten.Es senkte auch die Kosten, indem Nixie-Röhrchen, sieben Segment-Anzeigen und Taschenrechner für die Bedienerkonsolen verwendet werden können.Wo binäre Anzeigen zu komplex zum Gebrauch waren, die Dezimalanzeigen benötigen komplexe Hardware, um Radixe umzuwandeln, und hexadezimale Anzeigen, die zum Anzeigen von Buchstaben erforderlich sind.

Alle modernen Computerplattformen verwenden jedoch 16-, 32- oder 64-Bit-Wörter mit acht Bits ein Byte.Bei solchen Systemen wären drei Oktalstellen erforderlich, wobei die signifikantesten Oktalziffern unelegant nur zwei binäre Ziffern darstellen (und in einer Serie würde die gleiche Oktalendifferung eine binäre Ziffer aus dem nächsten Byte darstellen).Daher wird hexadezimal heutzutage häufiger in Programmiersprachen verwendet, da eine Hexadezimal -Ziffer vier binäre Ziffern abdeckt und alle modernen Computerplattformen Maschinenwörter haben, die durch vier gleichmäßig teilbar sind.Einige Plattformen mit einer zweiten Word-Größe haben weiterhin Unterwörter für Anweisungen, die leichter verstanden werden, wenn sie in Oktal angezeigt werden.Dies schließt den PDP-11 ein.Die moderne allgegenwärtige X86-Architektur gehört auch zu dieser Kategorie, aber Oktal wird auf dieser Plattform fast nie verwendet.

-Adam

Ich habe noch nie Oktalnummern in meinem Code verwendet und auf einen Code gestoßen, der ihn verwendet hat.

Ich wette du hast.Gemäß dem Standard sind numerische Literale, die mit Null beginnen, oktal.Dazu gehört trivialerweise, 0.Jedes Mal, wenn Sie eine buchstäbliche Null verwendet oder gesehen haben, war diese oktal.Komisch aber wahr.:-)

Die kommerzielle Luftfahrt verwendet oktale „Labels“ (im Wesentlichen Nachrichtentyp-IDs) im ehrwürdigen Busstandard Arinc 429.Daher ist es schön, beim Schreiben von Code für Avionikanwendungen Beschriftungswerte in Oktalform angeben zu können ...

Ich habe auch gesehen, dass Oktal in Flugzeugtranspondern verwendet wird.Ein Mode-3a-Transpondercode ist eine 12-Bit-Zahl, die jeder als 4 Oktalzahlen behandelt.Es gibt ein paar weitere Informationen dazu Wikipedia.Ich weiß, dass es im Allgemeinen nicht mit Computern zu tun hat, aber die FAA verwendet auch Computer :).

Es ist nützlich für die chmod Und mkdir Funktioniert im Unix-Land, aber ansonsten fallen mir keine anderen üblichen Verwendungsmöglichkeiten ein.

Durch kam ich mit Octal in Kontakt PDP-11, und anscheinend auch die C-Sprache :)

TAR-Dateien speichern Informationen als oktale Ganzzahlzeichenfolge

Es gibt keinen irdischen Grund, einen Standard zu ändern, der auf die Geburt der Sprache zurückgeht und in unzähligen Programmen existiert.Ich erinnere mich noch an ASCII -Zeichen durch ihre Oktalwerte, müsste den Hex -Wert von A überlegen, aber es ist 101 in Oktal;numerisch 0 ist 060...^C ist 003...

Das heißt, ich verwende oft die oktale Darstellung.

Wenn Sie jetzt wirklich Ihre Mine verbiegen wollen, werfen Sie einen Blick auf das Wortformat für den PDP-10 ...

Es gibt immer noch eine Reihe alter Prozesssteuerungssysteme (Honeywell H4400, H45000 usw.) aus den späten 60er und 70er Jahren, die auf die Verwendung von 24-Bit-Wörtern mit oktaler Adressierung ausgelegt sind.Denken Sie als Beispiel an die Zeit, als die letzten Kernkraftwerke in den Vereinigten Staaten gebaut wurden.

Das Ersetzen dieser Industriesysteme ist ein ziemlich umfangreiches Unterfangen. Vielleicht haben Sie also das Glück, einem in freier Wildbahn zu begegnen, bevor es ausstirbt, und staunen vor Ehrfurcht vor seinen großartigen, benutzerdefinierten Gleitkommaformaten!

Jeder, der gelernt hat, auf einem PDP-8 zu programmieren, hat ein Herz für Oktalzahlen.Die Wortgröße betrug 12 Bit, aufgeteilt in 4 Gruppen zu je 3 Bit, also war -1 7777 Oktal.Dieses Schema wurde im PDP-11 beibehalten, das über 16-Bit-Wörter verfügte, aber für verschiedene Dinge immer noch die Oktaldarstellung verwendete, daher das *NIX-Dateiberechtigungsschema, das bis heute existiert.

Octal ist und war bei der ersten verfügbaren Anzeigehardware (7-Segment-Anzeigen) am nützlichsten.Für diese ursprünglichen Displays waren später keine Decoder verfügbar.

Daher wurden die digitalen Registerausgänge so gruppiert, dass sie zur verfügbaren Anzeige passen, die nur acht (8) Symbole anzeigen konnte:0,1,2 3,4,5,6,7 .

Auch die ersten CRT-Anzeigeröhren waren Raster-Scan-Anzeigen und die einfachsten Zeichensymbolgeneratoren entsprachen den 7-Segment-Anzeigen.

Der motivierende Treiber war wie immer die günstigste Anzeige, die möglich war.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top