Nombre Octal de littéraux: Quand? Pourquoi? Jamais?
Je n'ai jamais utilisé la notation octale dans mon code, ni trouver le code qui l'a utilisé (en hexadécimal, et peu se tourner nonobstant).
J'ai commencé à programmer en C/C++ sur 1994 alors peut-être que je suis trop jeune pour cela? Ne plus âgés code octal? C inclut le support pour ces en ajoutant un 0, mais où est le code qui utilise ces 8 nombre de littéraux?
- Je les utilise (sous la forme d'octal zéros) de tous les temps:
if (b < 0) b = 0;
- Je me demande si il n'y aurait aucune difficulté à définir 0q1234 comme étant le "bon" format pour les non-zéro les constantes octales, et explicitement depricating 01234 avec la recommandation que les compilateurs produire un non mortels de diagnostic? En fait, ce que je voudrais voir serait un général bits format 0[[x[0-9A-Fa-f]+]|[q[0-7]+]|[w[0-3]+]|[v[0-1]+]]+ pour permettre un mélange de 1 à 4 champs de bits, depuis le 3-champs de bits ne sont pas toujours aligné un multiple de 3 bits à partir de la droite.
- Par coïncidence, cette question fini par, montrant AINSI en première page aujourd'hui (quelqu'un a ajouté une réponse) et Raymond Chen est arrivé de publier un article sur le octal mess aujourd'hui ainsi: La malédiction du zéro
- La seule utilisation que j'ai vu lors de la définition de fichier open() les autorisations et les indicateurs, car ils sont généralement copiés à partir de normes de références. Mais même pour ces cas, ils ne sont pas beaucoup plus utiles que la virgule ou même représentation binaire pour les littéraux entiers.
- Python 3 n'est donc - les constantes octales ont la forme
0o1234
, tandis que l'ancien01234
forme donne une erreur de syntaxe. - et ceci: esdiscuss.org/topic/...
Vous devez vous connecter pour publier un commentaire.
J'ai récemment eu à écrire le protocole réseau de code qui accède à 3 champs de bits. Octal est pratique lorsque vous souhaitez déboguer que.
Juste pour l'effet, pouvez-vous me dire quels sont les 3 bits les champs de ce sont?
D'autre part, ce même nombre en octal:
Maintenant, enfin, en binaire (par groupes de 3):
Le seul endroit ou j'ai trouver octal littéraux est ces jours-ci lorsque vous traitez avec les bits de permission sur les fichiers dans Linux, qui sont normalement représenté que 3 octale, où chaque chiffre représente les permissions pour le propriétaire du fichier, le groupe et les autres utilisateurs, respectivement.
par exemple 0755 (qui vient d'755 avec la plupart des outils de ligne de commande) signifie que le fichier propriétaire dispose de toutes les autorisations (lecture, écriture, exécution), et le groupe et les autres utilisateurs n'ont autorisations de lecture et exécution.
Représentant ces bits en octal rend plus facile de comprendre ce que les autorisations sont définies. Vous pouvez voir en un coup d'œil ce qui 0755 moyens, mais pas 493 ou 0x1ed.
De Wikipédia
-Adam
Je parie que vous avez. Selon la norme, les littéraux numériques qui commencent à zéro sont octal. Cela inclut, de façon triviale,
0
. Chaque fois que vous avez utilisé ou vu un littéral de zéro, ce qui a été octal. Étrange, mais vrai. 🙂0
est indiqué de manière explicite comme octal constante. En outre, décimal constantes ne peuvent pas commencer par un zéro. Vous pouvez voir un projet de ce type en ligne ici.De l'Aviation commerciale utilise octal "étiquettes" (essentiellement de type de message id) dans la vénérable Arinc 429 bus standard. Afin d'être en mesure de spécifier les valeurs des étiquettes en octal lors de l'écriture de code pour les applications avioniques est gentil...
J'ai également vu octal utilisé dans les avions de transpondeurs. Un mode-3a code de transpondeur est un 12-nombre de bits que tout le monde traite avec 4 nombres octaux. Il y a un peu plus d'informations sur Wikipédia. Je sais que c'est généralement pas lié à l'informatique, mais la FAA utilise des ordinateurs trop :).
Il est utile pour la
chmod
etmkdir
fonctions Unix terre, mais à part que je ne peux pas penser à d'autres usages courants.Je suis entré en contact avec Octal par PDP-11, et donc, apparemment, n'a le langage C 🙂
fichiers tar stocker des informations comme octal entier chaîne de valeur de
Il n'y a pas de raison terrestre de modifier une norme qui remonte à la naissance de la langue et qui existe dans un nombre incalculable de programmes. Je me souviens encore des caractères ASCII par leur
valeurs octales, aurait à penser à venir avec la valeur hexadécimale d'Un, mais il est de 101 en octal; numérique 0 est 060... ^C est-003...
C'est-à-dire, j'utilise souvent la représentation octale.
Maintenant, si vous voulez vraiment vous pliez votre mine, prendre un coup d'oeil au format word pour le PDP-10...
Il y a encore un tas de vieux Systèmes de Contrôle de Processus (Honeywell H4400, H45000, etc) là-bas à partir de la fin des années 60 et 70 qui sont disposés à 24 bits des mots avec octal d'adressage. Penser lors de la dernière centrales nucléaires ont été construites aux États-unis comme un exemple.
Le remplacement de ces systèmes industriels est une assez importante entreprise de sorte que vous pouvez juste être la chance de rencontrer un dans la nature avant qu'ils ne disparaissent et rester bouche bée d'admiration devant leur magnifique personnalisé floating point format!
Quelqu'un qui a appris à programmer sur un PDP-8 a une place au chaud dans son cœur pour les nombres octaux. La taille de mot de 12 bits divisés en 4 groupes de 3 bits chacun, donc -1 est 7777 octal. Ce dispositif a été perpétué dans le PDP-11, qui avait 16 bits de mots, mais encore utilisé octal représentation pour diverses choses, d'où le fichier *NIX régime de l'autorisation qui vit à ce jour.
Octal est et a été le plus utile avec l'affichage de matériel (à 7 segments affiche). Ces écrans n'ont pas les décodeurs disponibles plus tard.
Ainsi, le numérique s'inscrire sorties ont été regroupés pour s'adapter à l'écran qui était capable de l'affichage de huit(8) symboles: 0,1,2 3,4,5,6,7 .
Aussi le premier écran CRT de tubes ont été raster scan affiche et la plus simple personnage-symbole des générateurs ont été équivalent à 7 segments affiche.
La motivation conducteur a été, comme toujours, le moins cher possible.