Question

Je n'ai jamais utilisé de nombres octaux dans mon code ni rencontré de code qui les utilisait (malgré les hexadécimaux et les manipulations de bits).

J'ai commencé à programmer en C/C++ vers 1994 alors peut-être que je suis trop jeune pour ça ?L’ancien code utilise-t-il l’octal ?C inclut leur prise en charge en ajoutant un 0, mais où est le code qui utilise ces littéraux numériques en base 8 ?

Était-ce utile?

La solution

J'ai récemment dû écrire du code de protocole réseau qui accède aux champs de 3 bits.Octal est utile lorsque vous souhaitez déboguer cela.

Juste pour effet, pouvez-vous me dire quels sont les champs de 3 bits ?

0x492492

Par contre ce même nombre en octal :

022222222

Maintenant, enfin, en binaire (par groupes de 3) :

010 010 010 010 010 010 010 010

Autres conseils

Le seul endroit où je rencontre des littéraux octaux ces jours-ci est lorsque je traite les bits d'autorisation sur les fichiers sous Linux, qui sont normalement représentés par 3 chiffres octaux, où chaque chiffre représente respectivement les autorisations du propriétaire du fichier, du groupe et des autres utilisateurs.

par exemple.0755 (également seulement 755 avec la plupart des outils de ligne de commande) signifie que le propriétaire du fichier dispose de toutes les autorisations (lecture, écriture, exécution), et que le groupe et les autres utilisateurs disposent uniquement des autorisations de lecture et d'exécution.

La représentation de ces bits en octal permet de déterminer plus facilement quelles autorisations sont définies.Vous pouvez voir d'un seul coup d'œil ce que signifie 0755, mais pas 493 ou 0x1ed.

Depuis Wikipédia

Au moment où Octal est devenu à l'origine largement utilisé dans l'informatique, des systèmes tels que les mainframes IBM ont utilisé des mots 24 bits (ou 36 bits).L'octal était une abréviation idéale de binaire pour ces machines car huit (ou douze) chiffres pouvaient afficher de manière concise un mot de machine entier (chaque chiffre octal couvrant trois chiffres binaires).Il a également réduit les coûts en permettant aux tubes Nixie, aux écrans à sept segments et aux calculatrices d'être utilisés pour les consoles de l'opérateur;Lorsque les écrans binaires étaient trop complexes pour être utilisés, les écrans décimaux nécessaires pour convertir les rayons et les écrans hexadécimaux nécessaires pour afficher des lettres.

Toutes les plates-formes informatiques modernes, cependant, utilisent des mots 16, 32 ou 64 bits, avec huit bits constituant un octet.Sur ces systèmes, trois chiffres octaux seraient nécessaires, le chiffre octal le plus significatif ne représentant de manière inélégamment représenté que deux chiffres binaires (et dans une série, le même chiffre octal représenterait un chiffre binaire de l'octet suivant).Par conséquent, l'hexadécimal est plus couramment utilisé dans les langages de programmation aujourd'hui, car un chiffre hexadécimal couvre quatre chiffres binaires et toutes les plates-formes informatiques modernes ont des mots machine qui sont uniformément divisibles par quatre.Certaines plates-formes avec une taille de mot de puissance de deux ont encore des sous-mots d'instruction qui sont plus facilement comprises si elles sont affichées en octal;Cela inclut le PDP-11.L'architecture omniprésente moderne x86 appartient également à cette catégorie, mais Octal n'est presque jamais utilisé sur cette plate-forme.

-Adam

Je n'ai jamais utilisé de numéros octaux dans mon code ni rencontré aucun code qui l'a utilisé.

Je parie que oui.Selon la norme, les littéraux numériques commençant par zéro sont octaux.Cela inclut, trivialement, 0.Chaque fois que vous avez utilisé ou vu un zéro littéral, celui-ci était octal.Etrange mais vrai.:-)

L'aviation commerciale utilise des « étiquettes » octales (essentiellement des identifiants de type de message) dans la vénérable norme de bus Arinc 429.Donc, être capable de spécifier des valeurs d'étiquette en octal lors de l'écriture de code pour des applications avioniques est bien...

J'ai également vu l'octal utilisé dans les transpondeurs d'avions.Un code de transpondeur mode 3a est un nombre de 12 bits que tout le monde traite comme 4 nombres octaux.Il y a un peu plus d'informations sur Wikipédia.Je sais que ce n'est généralement pas lié à l'informatique, mais la FAA utilise aussi des ordinateurs :).

C'est utile pour le chmod et mkdir fonctionne dans le pays Unix, mais à part cela, je ne peux penser à aucune autre utilisation courante.

Je suis entré en contact avec Octal grâce à PDP-11, et apparemment, le langage C aussi :)

les fichiers tar stockent les informations sous forme de chaîne de valeur entière octale

Il n’y a aucune raison terrestre de modifier une norme qui remonte à la naissance du langage et qui existe dans un nombre incalculable de programmes.Je me souviens encore des personnages ASCII par leurs valeurs octales, devrait penser à trouver la valeur hexadécimale de A, mais il est 101 en octal;le 0 numérique est 060...^C est 003...

C'est-à-dire que j'utilise souvent la représentation octale.

Maintenant, si vous voulez vraiment plier votre mine, jetez un œil au format Word du PDP-10...

Il existe encore un tas d'anciens systèmes de contrôle de processus (Honeywell H4400, H45000, etc.) de la fin des années 60 et 70 qui sont conçus pour utiliser des mots de 24 bits avec un adressage octal.Pensez à l’époque où les dernières centrales nucléaires ont été construites aux États-Unis, à titre d’exemple.

Le remplacement de ces systèmes industriels est une entreprise assez importante, alors vous aurez peut-être la chance d'en rencontrer un dans la nature avant qu'ils ne disparaissent et d'être bouche bée devant leurs magnifiques formats à virgule flottante personnalisés !

Quiconque a appris à programmer sur un PDP-8 a un faible pour les nombres octaux.La taille du mot était de 12 bits divisés en 4 groupes de 3 bits chacun, donc -1 était de 7777 octal.Ce schéma s'est perpétué dans le PDP-11 qui avait des mots de 16 bits mais utilisait toujours une représentation octale pour diverses choses, d'où le schéma d'autorisation de fichier *NIX qui existe encore aujourd'hui.

Octal est et a été très utile avec le premier matériel d'affichage disponible (écrans à 7 segments).Ces écrans originaux n'avaient pas les décodeurs disponibles plus tard.

Ainsi, les sorties du registre numérique ont été regroupées pour s'adapter à l'affichage disponible qui n'était capable d'afficher que huit (8) symboles :0,1,2 3,4,5,6,7 .

De plus, les premiers tubes d'affichage CRT étaient des écrans à balayage raster et les générateurs de symboles de caractères les plus simples étaient équivalents aux écrans à 7 segments.

Le conducteur motivant était, comme toujours, l'affichage le moins cher possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top