Domanda

Non ho mai usato numeri ottali nel mio codice né mi sono imbattuto in alcun codice che lo utilizzasse (nonostante esadecimale e bit twiddling).

Ho iniziato a programmare in C/C++ intorno al 1994, quindi forse sono troppo giovane per questo?Il codice precedente utilizza l'ottale?C include il supporto per questi anteponendo uno 0, ma dov'è il codice che utilizza questi numeri letterali in base 8?

È stato utile?

Soluzione

Recentemente ho dovuto scrivere il codice del protocollo di rete che accede ai campi a 3 bit.Octal è utile quando vuoi eseguirne il debug.

Solo per effetto, puoi dirmi quali sono i campi a 3 bit di questo?

0x492492

D'altra parte, questo stesso numero in ottale:

022222222

Ora, finalmente, in binario (in gruppi di 3):

010 010 010 010 010 010 010 010

Altri suggerimenti

L'unico posto in cui mi imbatto in valori letterali ottali in questi giorni è quando ho a che fare con i bit di autorizzazione sui file in Linux, che sono normalmente rappresentati come 3 cifre ottali, dove ciascuna cifra rappresenta rispettivamente le autorizzazioni per il proprietario del file, il gruppo e gli altri utenti.

per esempio.0755 (anche solo 755 con la maggior parte degli strumenti da riga di comando) significa che il proprietario del file dispone di autorizzazioni complete (lettura, scrittura, esecuzione) e il gruppo e gli altri utenti hanno solo autorizzazioni di lettura ed esecuzione.

Rappresentare questi bit in ottale rende più semplice capire quali autorizzazioni sono impostate.Puoi capire a colpo d'occhio cosa significa 0755, ma non 493 o 0x1ed.

Da Wikipedia

Nel momento in cui Octal originariamente divenne ampiamente utilizzato nel calcolo, sistemi come i mainframe IBM impiegavano parole a 24 bit (o 36 bit).Octal era un'abbreviazione ideale del binario per queste macchine perché otto (o dodici) cifre potevano visualizzare in modo conciso un'intera parola della macchina (ogni cifra ottale che copre tre cifre binarie).Riduce anche i costi consentendo a tubi Nixie, display a sette segmenti e calcolatori per essere utilizzati per le console dell'operatore;Laddove i display binari fossero troppo complessi da usare, i display decimali richiedevano hardware complesso per convertire le radix e i display esadecimali necessari per visualizzare le lettere.

Tutte le moderne piattaforme di calcolo, tuttavia, utilizzano parole da 16, 32 o 64 bit, con otto bit che costituiscono un byte.Su tali sistemi sarebbero necessarie tre cifre ottali, con le cifre ottali più significative che rappresentano ineleganti solo due cifre binarie (e in una serie la stessa cifra ottale rappresenterebbe una cifra binaria dal byte successivo).Quindi oggi esadecimale è più comunemente usato nei linguaggi di programmazione, poiché una cifra esadecimale copre quattro cifre binarie e tutte le moderne piattaforme di elaborazione hanno parole di macchina che sono uniformemente divisibili da quattro.Alcune piattaforme con una dimensione delle parole del potere-di due dispongono ancora di sub-parole di istruzioni che sono più facilmente comprese se visualizzate in ottale;Ciò include il PDP-11.L'architettura X86 onnipresente di oggi appartiene anche a questa categoria, ma Octal non è quasi mai usato su questa piattaforma.

-Adamo

Non ho mai usato numeri ottali nel mio codice né imbattuto in nessun codice che lo usasse.

Scommetto di sì.Secondo lo standard, i letterali numerici che iniziano con zero sono ottali.Ciò include, banalmente, 0.Ogni volta che hai usato o visto uno zero letterale, questo è stato ottale.Strano ma vero.:-)

L'aviazione commerciale utilizza "etichette" ottali (sostanzialmente ID di tipo messaggio) nel venerabile standard di autobus Arinc 429.Quindi essere in grado di specificare i valori delle etichette in ottale quando si scrive codice per applicazioni avioniche è carino...

Ho visto anche l'ottale utilizzato nei transponder degli aerei.Un codice transponder modalità 3a è un numero a 12 bit che tutti trattano come 4 numeri ottali.C'è qualche informazione in più su Wikipedia.So che in genere non è legato ai computer, ma anche la FAA usa i computer :).

È utile per chmod E mkdir funziona in territorio Unix, ma a parte questo non riesco a pensare ad altri usi comuni.

Sono entrato in contatto con Octal tramite PDP-11, e così, a quanto pare, ha fatto il linguaggio C :)

i file tar memorizzano le informazioni come una stringa di valori interi ottali

Non esiste alcuna ragione terrena per modificare uno standard che risale alla nascita della lingua e che esiste in un numero indicibile di programmi.Ricordo ancora i personaggi ASCII per i loro valori ottali, avrei dovuto pensare di elaborare il valore esagonale di A, ma è 101 in ottale;il numero 0 è 060...^C è 003...

Vale a dire, utilizzo spesso la rappresentazione ottale.

Ora, se vuoi davvero dare il massimo, dai un'occhiata al formato word per il PDP-10...

Esistono ancora un sacco di vecchi sistemi di controllo di processo (Honeywell H4400, H45000, ecc.) della fine degli anni '60 e '70 che sono progettati per utilizzare parole a 24 bit con indirizzamento ottale.Pensiamo ad esempio a quando furono costruite le ultime centrali nucleari negli Stati Uniti.

Sostituire questi sistemi industriali è un'impresa piuttosto importante, quindi potresti essere abbastanza fortunato da incontrarne uno in natura prima che si estinguano e rimanere a bocca aperta davanti ai loro magnifici formati in virgola mobile personalizzati!

Chiunque abbia imparato a programmare su un PDP-8 ha nel cuore un debole per i numeri ottali.La dimensione della parola era di 12 bit divisi in 4 gruppi di 3 bit ciascuno, quindi -1 era 7777 ottale.Questo schema è stato perpetuato nel PDP-11 che aveva parole a 16 bit ma utilizzava ancora la rappresentazione ottale per varie cose, da qui lo schema di autorizzazione dei file *NIX che sopravvive fino ad oggi.

Octal è ed è stato molto utile con il primo hardware di visualizzazione disponibile (display a 7 segmenti).Questi display originali non avevano i decoder disponibili successivamente.

Pertanto le uscite del registro digitale sono state raggruppate per adattarsi al display disponibile che era in grado di visualizzare solo otto (8) simboli:0,1,2 3,4,5,6,7 .

Anche i primi tubi di visualizzazione CRT erano display a scansione raster e i più semplici generatori di caratteri-simboli erano equivalenti ai display a 7 segmenti.

Il driver motivante è stato, come sempre, il display meno costoso possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top