sistemas - Literales de números octales: ¿Cuándo? ¿Por qué? ¿Nunca?
sistema octal ejemplos (13)
Nunca he usado números octales en mi código ni me he encontrado con ningún código que lo haya utilizado (a pesar de los ajustes hexadecimales y de bits).
Empecé a programar en C / C ++ alrededor de 1994, ¿entonces tal vez soy demasiado joven para esto? ¿El código anterior usa octal? C incluye soporte para estos anteponiendo un 0, pero ¿dónde está el código que usa estos literales de 8 números básicos?
Nunca he usado números octales en mi código ni he encontrado ningún código que lo haya utilizado.
Apuesto a que tienes. De acuerdo con el estándar, los literales numéricos que comienzan con cero son octal. Esto incluye, trivialmente, 0
. Cada vez que ha usado o visto un cero literal, esto ha sido octal. Extraño pero cierto. :-)
Commercial Aviation utiliza "etiquetas" octal (básicamente identificadores de tipo de mensaje) en el venerable estándar de bus Arinc 429. Entonces, poder especificar valores de etiqueta en octal cuando se escribe código para aplicaciones de aviónica es bueno ...
Cualquiera que haya aprendido a programar en un PDP-8 tiene un lugar cálido en su corazón para los números octales. El tamaño de la palabra era de 12 bits divididos en 4 grupos de 3 bits cada uno, por lo que -1 era 7777 octal. Este esquema se perpetuaba en el PDP-11, que tenía palabras de 16 bits, pero todavía utilizaba la representación octal para varias cosas, de ahí el esquema de permiso de archivo * NIX que perdura hasta nuestros días.
De Wikipedia
En el momento en que originalmente octal se convirtió en ampliamente utilizado en la informática, los sistemas como los mainframes de IBM empleaban palabras de 24 bits (o 36 bits). Octal era una abreviatura ideal de binario para estas máquinas porque ocho (o doce) dígitos podían mostrar concisamente una palabra de máquina completa (cada dígito octal abarcaba tres dígitos binarios). También redujo los costos al permitir el uso de tubos Nixie, pantallas de siete segmentos y calculadoras para las consolas de operador; donde las pantallas binarias eran demasiado complejas de usar, las pantallas decimales necesitaban hardware complejo para convertir las radixes y las pantallas hexadecimales necesarias para mostrar las letras.
Sin embargo, todas las plataformas informáticas modernas usan palabras de 16, 32 o 64 bits, con ocho bits formando un byte. En tales sistemas se necesitarían tres dígitos octales, con el dígito octal más significativo representando de manera poco elegante solo dos dígitos binarios (y en una serie el mismo dígito octal representaría un dígito binario del siguiente byte). Por lo tanto, el hexadecimal se usa más comúnmente hoy en día en los lenguajes de programación, ya que un dígito hexadecimal cubre cuatro dígitos binarios y todas las plataformas informáticas modernas tienen palabras de máquina que son divisibles por cuatro. Algunas plataformas con un tamaño de palabra de potencia de dos todavía tienen subwords de instrucciones que se entienden más fácilmente si se muestran en octal; esto incluye el PDP-11. La arquitectura omnipresente x86 de hoy en día también pertenece a esta categoría, pero octal casi nunca se usa en esta plataforma.
-Adán
El único lugar en el que encuentro literales octales en estos días es cuando trato con los bits de permisos en archivos en Linux, que normalmente se representan como 3 dígitos octales, donde cada dígito representa los permisos para el propietario del archivo, grupo y otros usuarios, respectivamente.
por ejemplo, 0755 (también solo 755 con la mayoría de las herramientas de línea de comando) significa que el propietario del archivo tiene permisos completos (lectura, escritura, ejecución) y el grupo y otros usuarios solo tienen permisos de lectura y ejecución.
La representación de estos bits en octal hace que sea más fácil averiguar qué permisos se establecen. Puede decir de un vistazo lo que significa 0755, pero no 493 o 0x1ed.
Entré en contacto con Octal a través de PDP-11 , y al parecer, hizo el lenguaje C :)
Es útil para las funciones chmod
y mkdir
en tierra Unix, pero aparte de eso no puedo pensar en ningún otro uso común.
No existe una razón física para modificar un estándar que se remonta al nacimiento del lenguaje y que existe en un número incalculable de programas. Todavía recuerdo caracteres ASCII por sus valores octales, tendría que pensar en llegar al valor hexadecimal de A, pero es 101 en octal; el 0 numérico es 060 ... ^ C es 003 ...
Es decir, a menudo uso la representación octal.
Ahora, si realmente quieres doblar tu mina, eche un vistazo al formato de palabra para el PDP-10 ...
Octal es y fue más útil con el primer hardware de pantalla disponible (pantallas de 7 segmentos). Estas pantallas originales no tenían los decodificadores disponibles más tarde.
De este modo, las salidas del registro digital se agruparon para ajustarse a la pantalla disponible, que solo podía mostrar ocho (8) símbolos: 0,1,2 3,4,5,6,7.
Además, los primeros tubos de pantalla CRT eran pantallas de exploración de trama y los generadores de símbolos de caracteres más simples eran equivalentes a las pantallas de 7 segmentos.
El conductor motivador fue, como siempre, la pantalla menos costosa posible.
Recientemente tuve que escribir un código de protocolo de red que accede a campos de 3 bits. Octal es útil cuando quieres depurar eso.
Solo por efecto, ¿puedes decirme qué son los campos de 3 bits de esto?
0x492492
Por otro lado, este mismo número en octal:
022222222
Ahora, finalmente, en binario (en grupos de 3):
010 010 010 010 010 010 010 010
También he visto octal usado en transpondedores de aviones. Un código de transpondedor de modo 3a es un número de 12 bits que todos manejan como 4 números octales. Hay un poco más de información en Wikipedia . Sé que generalmente no está relacionado con la computadora, pero la FAA también usa computadoras :).
Todavía hay un montón de viejos sistemas de control de proceso (Honeywell H4400, H45000, etc.) disponibles a partir de finales de los años 60 y 70 que están diseñados para usar palabras de 24 bits con direccionamiento octal. Piense cuando se construyeron las últimas centrales nucleares en los Estados Unidos como un ejemplo.
Reemplazar estos sistemas industriales es una tarea bastante importante, por lo que es posible que tenga la suerte de encontrarse con uno en libertad antes de que se extingan y admire sus magníficos formatos de punto flotante personalizados.
los archivos tar almacenan información como una cadena de valor entero octal