java literals octal

java - ¿Para qué se usan los números octales(base 8)?



literals (3)

"Los números octales no son tan comunes como solían ser. Sin embargo, Octal se usa cuando el número de bits en una palabra es múltiplo de 3. También se usa como una forma abreviada para representar permisos de archivos en sistemas UNIX y representación de Números UTF8, etc. "

De: https://www.tutorialspoint.com/octal-number-system

Java proporciona formas de escribir literales numéricos en las bases 2, 8, 10 y 16.

Me pregunto por qué se incluye la base 8 , por ejemplo, int x = 0123; ?

Estoy pensando que podría haber algo similar al hecho de que en hexadecimal la capacidad de un byte es FF + 1 , y así sucesivamente.


Fue para familiarizar el lenguaje a quienes conocían C, etc. ¡Entonces la pregunta es por qué apoyarlo en esos!

Había arquitecturas (varios PDP) que usaban palabras de 18 bits de ancho (y otras usaban palabras de 36 bits), por lo que los literales donde el dígito tiene 3 bits de ancho serían útiles.

Prácticamente, el único lugar que he visto que se usa en el código Java es para especificar permisos de estilo unix, por ejemplo, 0777 , 0644 , etc.

(La respuesta irónica de por qué es compatible es "obtener votos a favor sobre esta pregunta ").


Historia de la informática (ciencia). Para representar un grupo de bits, una base 10 no se ajusta, la base 8 = 2 3 para 3 bits y la base 16 = 2 4 para 4 bits se ajustan mejor.

La ventaja de la base 8 es que todos los dígitos son realmente dígitos: 0-7, mientras que la base 16 tiene "dígitos" 0-9A-F.

Para 8 bits de una base de bytes 16 (hexadecimal) es un mejor ajuste, y ganó. Para Unix base 8 octal, a menudo todavía se usa para bits rwx (lectura, escritura, ejecución) para usuarios, grupos y otros; de ahí números octales como 0666 o 0777.

El hexadecimal es omnipresente, sobre todo porque los tamaños de palabra de las computadoras hoy en día son de varios bytes. Que el byte 8 bits se haya convertido en un estándar es otra historia relacionada difícil (2 3 bits y direccionamiento).