Octales
Hex | dec | oct | 3 | 2 | 1 | 0 | paso |
---|---|---|---|---|---|---|---|
0Hex | 00dec | 00oct | 0 | 0 | 0 | 0 | g0 |
1Hex | 01dec | 01oct | 0 | 0 | 0 | 1 | h1 |
2Hex | 02dec | 02oct | 0 | 0 | 1 | 0 | j3 |
3Hex | 03dec | 03oct | 0 | 0 | 1 | 1 | i2 |
4Hex | 04dec | 04oct | 0 | 1 | 0 | 0 | n7 |
5Hex | 05dec | 05oct | 0 | 1 | 0 | 1 | m6 |
6Hex | 06dec | 06oct | 0 | 1 | 1 | 0 | k4 |
7Hex | 07dec | 07oct | 0 | 1 | 1 | 1 | l5 |
8Hex | 08dec | 10oct | 1 | 0 | 0 | 0 | vF |
9Hex | 09dec | 11oct | 1 | 0 | 0 | 1 | uE |
AHex | 10dec | 12oct | 1 | 0 | 1 | 0 | sC |
BHex | 11dec | 13oct | 1 | 0 | 1 | 1 | tD |
CHex | 12dec | 14oct | 1 | 1 | 0 | 0 | o8 |
DHex | 13dec | 15oct | 1 | 1 | 0 | 1 | p9 |
EHex | 14dec | 16oct | 1 | 1 | 1 | 0 | rB |
FHex | 15dec | 17oct | 1 | 1 | 1 | 1 | qA |
El sistema numérico octal, o oct para abreviar, es el sistema numérico de base 8 y utiliza los dígitos del 0 al 7. Esto quiere decir que 10octal representa ocho y 100octal representa sesenta y cuatro. Sin embargo, el inglés, como la mayoría de los idiomas, usa un sistema numérico de base 10, por lo tanto, un verdadero sistema octal podría usar un vocabulario diferente.
En el sistema decimal, cada lugar es una potencia de diez. Por ejemplo:
- 7410=7× × 101+4× × 100{displaystyle mathbf {74} _{10}=mathbf {7} times 10^{1}+mathbf {4} times 10^{0}
En el sistema octal, cada lugar es una potencia de ocho. Por ejemplo:
- 1128=1× × 82+1× × 81+2× × 80{displaystyle mathbf {112} _{8}=mathbf {1} times 8^{2}+mathbf {1} times 8^{1}+mathbf {2} times 8^{0}}
Al realizar el cálculo anterior en el sistema decimal familiar, vemos por qué 112 en octal es igual a 64+8+2=74{displaystyle 64+8+2=74} en decimal.
Los números octales se pueden convertir fácilmente a partir de representaciones binarias (similares a un sistema numérico cuaternario) agrupando dígitos binarios consecutivos en grupos de tres (comenzando desde la derecha, para números enteros). Por ejemplo, la representación binaria para el decimal 74 es 1001010. Se pueden agregar dos ceros a la izquierda: (00)1 001 010, correspondientes a los dígitos octales 1 1 2, dando la representación octal 112.
× | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
2 | 2 | 4 | 6 | 10 | 12 | 14 | 16 | 20 |
3 | 3 | 6 | 11 | 14 | 17 | 22 | 25 | 30 |
4 | 4 | 10 | 14 | 20 | 24 | 30 | 34 | 40 |
5 | 5 | 12 | 17 | 24 | 31 | 36 | 43 | 50 |
6 | 6 | 14 | 22 | 30 | 36 | 44 | 52 | 60 |
7 | 7 | 16 | 25 | 34 | 43 | 52 | 61 | 70 |
10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 100 |
Uso
En China
Los ocho bagua o trigramas del I Ching corresponden a dígitos octales:
- 0 = ☷, 1 = ☳, 2 = ☵, 3 = ☱,
- 4 = ☶, 5 = ☲, 6 = ☴, 7 = ☰.
Gottfried Wilhelm Leibniz hizo la conexión entre trigramas, hexagramas y números binarios en 1703.
Por nativos americanos
- El lenguaje Yuki en California tiene un sistema octal porque los altavoces cuentan usando los espacios entre sus dedos en lugar de los dedos mismos.
- Los idiomas de Pamean en México también tienen un sistema octal, porque sus hablantes cuentan con los nudillos de un puño cerrado.
Por europeos
- Se ha sugerido que la palabra reconstruida Proto-Indo-European (PIE) para "nueve" podría estar relacionada con la palabra PIE para "nuevo". Sobre la base de esto, algunos han especulado que los proto-Indo-europeos utilizaron un sistema de números octal, aunque la evidencia que sostiene esto es delgada.
- En 1668, John Wilkins en Un ensayo hacia un verdadero carácter, y un lenguaje filosófico propuesta de uso de la base 8 en lugar de 10 "porque el camino de la Dichotomía o la Bipartición es el tipo más natural y elasie de División, ese número es capaz de esto a un Unite".
- En 1716, el rey Carlos XII de Suecia pidió a Emanuel Swedenborg que elaborara un sistema de números basado en 64 en lugar de 10. Sueciaborg argumentó, sin embargo, que para las personas con menos inteligencia que el rey una base tan grande sería demasiado difícil y en cambio propuso 8 como la base. En 1718 Sueciaborg escribió (pero no publicó) un manuscrito: "En ny rekenkonst som om vexlas wid Thalet 8 i stelle then wanliga wid Thalet 10" ("Una nueva aritmética (o arte de contar) que cambia en el número 8 en lugar de lo habitual en el número 10"). Los números 1–7 están allí denotados por los consonantes l, s, n, m, t, f, u (v) y cero por la vocal o. Así 8 = "lo", 16 = "so", 24 = "no", 64 = "loo", 512 = "looo" etc. Números con consonantes consecutivos se pronuncian con sonidos vocales entre de acuerdo con una regla especial.
- Escribiendo bajo el seudónimo "Hirossa Ap-Iccim" en La revista Gentleman, (Londres) Julio 1745, Hugh Jones propuso un sistema octal para monedas, pesos y medidas británicas. "En tanto que la razón y la comodidad nos indican un estándar uniforme para todas las cantidades; que llamaré Normas Georgianas; y eso es sólo dividir cada entero en cada especie en ocho partes iguales, y cada parte de nuevo en 8 partículas reales o imaginarias, en lo que sea necesario. Porque todas las naciones cuentan universalmente diez (originally occasioned by the number of digits on both hands) yet 8 is a far more complete and commodious number; since it is divisible into halves, quarters, and half quarters (or units) without a fraction, of which subdivision 10 es incapaz..." En un tratado posterior el Octave computation (1753) Jones concluyó: "Arithmetic by Octaves Parece más agradable para la Naturaleza de las Cosas, y por lo tanto puede llamarse Aritmética Natural en Oposición a la que ahora en Uso, por Decenios; que puede ser estimado Aritmética Artificial."
- En 1801, James Anderson criticó a los franceses por basar el sistema métrico en aritmética decimal. Él sugirió la base 8, por la cual acuñó el término octal. Su trabajo fue concebido como matemáticas recreativas, pero sugirió un sistema puramente octal de pesos y medidas y observó que el sistema existente de unidades inglesas ya era, en gran medida, un sistema octal.
- A mediados del siglo XIX, Alfred B. Taylor concluyó que "Nuestro radio octonario [base 8] es, por tanto, más allá de toda comparación el "mejor posible"para un sistema aritmético". La propuesta incluyó una notación gráfica para los dígitos y nuevos nombres para los números, sugiriendo que debemos contar "UNA, du, el, #, pa, se, #, #, Unty-un, Unty-du"y así sucesivamente, con varios sucesivos de ocho llamados "#, deber, ♪, Foty, Paty, Sety, gatito y menores." Así, por ejemplo, el número 65 (101 en octal) se hablaría en octonario como under-un. Taylor también renovó algunos de los trabajos de Sueciaborg sobre octal como apéndice de las publicaciones citadas.
En ordenadores
Octal se utilizó ampliamente en la informática cuando sistemas como UNIVAC 1050, PDP-8, ICL 1900 y mainframes de IBM empleaban palabras de 6 bits, 12 bits, 24 bits o 36 bits. Octal era una abreviatura ideal de binario para estas máquinas porque su tamaño de palabra es divisible por tres (cada dígito octal representa tres dígitos binarios). Entonces, dos, cuatro, ocho o doce dígitos podrían mostrar de manera concisa una palabra de máquina completa. También redujo los costos al permitir el uso de tubos Nixie, pantallas de siete segmentos y calculadoras para las consolas del operador, donde las pantallas binarias eran demasiado complejas de usar, las pantallas decimales necesitaban hardware complejo para convertir radices y las pantallas hexadecimales necesitaban mostrar más números..
Sin embargo, todas las plataformas informáticas modernas utilizan palabras de 16, 32 o 64 bits, divididas en bytes de ocho bits. En tales sistemas, se requerirían tres dígitos octales por byte, representando el dígito octal más significativo dos dígitos binarios (más un bit del siguiente byte significativo, si lo hay). La representación octal de una palabra de 16 bits requiere 6 dígitos, pero el dígito octal más significativo representa (bastante poco elegante) solo un bit (0 o 1). Esta representación no ofrece ninguna forma de leer fácilmente el byte más significativo, porque está difuminado en cuatro dígitos octales. Por lo tanto, el hexadecimal se usa más comúnmente en los lenguajes de programación actuales, ya que dos dígitos hexadecimales especifican exactamente un byte. Algunas plataformas con un tamaño de palabra de potencia de dos todavía tienen subpalabras de instrucciones que se entienden más fácilmente si se muestran en octal; esto incluye la familia PDP-11 y Motorola 68000. La omnipresente arquitectura x86 de hoy en día también pertenece a esta categoría, pero octal rara vez se usa en esta plataforma, aunque ciertas propiedades de la codificación binaria de los códigos de operación se vuelven más evidentes cuando se muestran en octal, p. el byte ModRM, que se divide en campos de 2, 3 y 3 bits, por lo que octal puede ser útil para describir estas codificaciones. Antes de la disponibilidad de los ensambladores, algunos programadores codificaban a mano los programas en octal; por ejemplo, Dick Whipple y John Arnold escribieron Tiny BASIC Extended directamente en código máquina, usando octal.
Octal se usa a veces en computación en lugar de hexadecimal, quizás más a menudo en los tiempos modernos junto con permisos de archivo en sistemas Unix (ver chmod). Tiene la ventaja de que no requiere ningún símbolo adicional como dígitos (el sistema hexadecimal es de base 16 y, por lo tanto, necesita seis símbolos adicionales más allá del 0 al 9). También se utiliza para pantallas digitales.
En los lenguajes de programación, los literales octales suelen identificarse con una variedad de prefijos, incluido el dígito 0
, las letras o
o q
, la combinación dígito-letra 0o
, o el símbolo &
o $
. En la convención de Motorola, los números octales tienen el prefijo @
, mientras que una letra minúscula (o mayúscula) o
o q
se agrega como sufijo siguiendo la convención de Intel. En DOS concurrente, DOS multiusuario y REAL/32, así como en DOS Plus y DR-DOS, varias variables de entorno como $CLS, $ON, $OFF, $HEADER o $FOOTER admiten un octal nnn
notación numérica, y DR-DOS DEBUG utiliza para prefijar números octales también.
Por ejemplo, el literal 73 (base 8) podría representarse como 073
, o73
, q73
, 0o73, 73, @73, &73, $73 o 73o en varios idiomas.
Los idiomas más nuevos han ido abandonando el prefijo 0
, ya que los números decimales a menudo se representan con ceros a la izquierda. El prefijo q
se introdujo para evitar que el prefijo o
se confundiera con un cero, mientras que el prefijo 0o
se introdujo para evitar comenzar un literal numérico con un carácter alfabético (como o
o q
), ya que estos pueden hacer que el literal se confunda con el nombre de una variable. El prefijo 0o
también sigue el modelo establecido por el prefijo 0x
usado para literales hexadecimales en el lenguaje C; es compatible con Haskell, OCaml, Python a partir de la versión 3.0, Raku, Ruby, Tcl a partir de la versión 9, PHP a partir de la versión 8.1, Rust y está destinado a ser compatible con ECMAScript 6 (el prefijo 0
originalmente representaba la base 8 en JavaScript, pero podría causar confusión, por lo que se desaconsejó en ECMAScript 3 y se eliminó en ECMAScript 5).
Números octales que se utilizan en algunos lenguajes de programación (C, Perl, PostScript...) para representaciones textuales/gráficas de cadenas de bytes cuando algunos valores de bytes (no representados en una página de códigos, no gráficos, que tienen un significado especial en contexto o de otro modo no deseado) tienen que escaparse como nnn
. La representación octal puede ser particularmente útil con bytes no ASCII de UTF-8, que codifica grupos de 6 bits, y donde cualquier byte de inicio tiene un valor octal 3nn
y cualquier byte de continuación tiene un valor octal 2nn.
Octal también se usó para punto flotante en las computadoras Ferranti Atlas (1962), Burroughs B5500 (1964), Burroughs B5700 (1971), Burroughs B6700 (1971) y Burroughs B7700 (1972).
En aviación
Los transpondedores de los aviones transmiten un "graznido" código, expresado como un número de cuatro dígitos octales, cuando es interrogado por un radar terrestre. Este código se utiliza para distinguir diferentes aeronaves en la pantalla del radar.
Conversión entre bases
Conversión de decimal a octal
Método de división euclidiana sucesiva por 8
Para convertir decimales enteros a octales, divida el número original por la mayor potencia posible de 8 y divida los residuos por potencias de 8 sucesivamente menores hasta que la potencia sea 1. La representación octal está formada por los cocientes, escritos en el orden generada por el algoritmo. Por ejemplo, para convertir 12510 a octal:
- 125 = 82 × 1 + 61
- 61 = 81 × 7 + 5
- 5 = 80 × 5 + 0
Por lo tanto, 12510 = 1758.
Otro ejemplo:
- 900 = 83 × 1 + 388
- 388 = 82 × 6 + 4
- 4 = 81 × 0 + 4
- 4 = 80 × 4 + 0
Por lo tanto, 90010 = 16048.
Método de multiplicación sucesiva por 8
Para convertir una fracción decimal a octal, multiplique por 8; la parte entera del resultado es el primer dígito de la fracción octal. Repita el proceso con la parte fraccionaria del resultado, hasta que sea nulo o esté dentro de límites de error aceptables.
Ejemplo: convertir 0,1640625 a octal:
- 0.1640625 × 8 = 1,3125 = 1 + 0.3125
- 0.3125 × 8 = 2,5 = 2 + 0,5
- 0.5 × 8 = 4.0 = 4 + 0
Por lo tanto, 0,164062510 = 0,1248.
Estos dos métodos se pueden combinar para manejar números decimales con partes enteras y fraccionarias, usando el primero en la parte entera y el segundo en la parte fraccionaria.
Método de duplicación sucesiva
Para convertir decimales enteros a octales, prefije el número con "0.". Realice los siguientes pasos mientras los dígitos permanezcan en el lado derecho de la base: Duplique el valor al lado izquierdo de la base, usando las reglas octales, mueva el punto de la base un dígito hacia la derecha y luego coloque el valor duplicado debajo del valor actual para que los puntos de la base se alineen. Si el punto de base movido cruza un dígito que es 8 o 9, conviértalo en 0 o 1 y agregue el acarreo al siguiente dígito hacia la izquierda del valor actual. Agregue octalmente esos dígitos a la izquierda de la raíz y simplemente baje esos dígitos a la derecha, sin modificación.
Ejemplo:
0.4 9 1 8 valor decimal +0 ------- 4,9 1 8 +1 0 --- 6 1.1 8 +1 4 2 --- 7 5 3.8 +1 7 2 6 --- 1 1 4 6 6.
Conversión octal a decimal
Para convertir un número k a decimal, utilice la fórmula que define su representación en base 8:
- k=.. i=0n()ai× × 8i){displaystyle k=sum ¿Por qué?
En esta fórmula, ai es un dígito octal individual que se está convirtiendo, donde i es la posición del dígito (contando desde 0 para el dígito más a la derecha).
Ejemplo: convertir 7648 a decimal:
- 7648 = 7 × 82 + 6 × 81 + 4 × 80 = 448 + 48 + 4 = 50010
Para números octales de dos dígitos, este método consiste en multiplicar el dígito principal por 8 y sumar el segundo dígito para obtener el total.
Ejemplo: 658 = 6 × 8 + 5 = 5310
Método de duplicación sucesiva
Para convertir octales a decimales, prefije el número con "0.". Realice los siguientes pasos mientras los dígitos permanezcan en el lado derecho de la base: Duplique el valor en el lado izquierdo de la base, usando las reglas decimales, mueva el punto de la base un dígito hacia la derecha y luego coloque el valor duplicado debajo del valor actual para que los puntos de base se alineen. Reste decimalmente esos dígitos a la izquierda de la raíz y simplemente baje esos dígitos a la derecha, sin modificación.
Ejemplo:
Valor total -0 --------- 1.1 4 6 6 - 2 ---------- 9.4 6 6 - 1 8 ---------- 7 6.6 6 - 1 5 2 ---------- 6 1 4.6 - 1 2 2 8 ---------- 4 9 1 8. Valor decimal
Conversión de octal a binario
Para convertir octal a binario, reemplace cada dígito octal por su representación binaria.
Ejemplo: convertir 518 a binario:
- 58 = 1012
- 18 = 0012
Por lo tanto, 518 = 101 0012.
Conversión de binario a octal
El proceso es el inverso del algoritmo anterior. Los dígitos binarios se agrupan de a tres, comenzando por el bit menos significativo y siguiendo hacia la izquierda y hacia la derecha. Agregue ceros iniciales (o ceros finales a la derecha del punto decimal) para completar el último grupo de tres si es necesario. Luego reemplace cada trío con el dígito octal equivalente.
Por ejemplo, convierta binario 1010111100 a octal:
001 010 111 100 1 2 7 4
Por lo tanto, 10101111002 = 12748.
Convertir 11100.01001 binario a octal:
011 100 . 010 010 3 4 . 2 2
Por lo tanto, 11100.010012 = 34.228.
Conversión octal a hexadecimal
La conversión se realiza en dos pasos usando el binario como base intermedia. Octal se convierte a binario y luego de binario a hexadecimal, agrupando dígitos de cuatro en cuatro, que corresponden cada uno a un dígito hexadecimal.
Por ejemplo, convierta octal 1057 a hexadecimal:
- Para binario:
1 0 5 7 001 000 101 111
- entonces al hexadecimal:
0010 0010 1111 2 2 F
Por lo tanto, 10578 = 22F16.
Conversión hexadecimal a octal
La conversión de hexadecimal a octal se realiza convirtiendo primero los dígitos hexadecimales en valores binarios de 4 bits y luego reagrupando los bits binarios en dígitos octales de 3 bits.
Por ejemplo, para convertir 3FA516:
- Para binario:
3 F A 5 0011 1111 Graben 19, 1010 0101
- entonces a octal:
0 011 111 110 100 101 0 3 7 6 4 5
Por lo tanto, 3FA516 = 376458.
Números reales
Fracciones
Debido a que solo tienen factores de dos, muchas fracciones octales tienen dígitos repetidos, aunque tienden a ser bastante simples:
Base decimal Principales factores de la base: 2, 5 Principales factores de uno debajo de la base: 3 Principales factores de uno por encima de la base: 11 Otros factores principales: 7 13 17 19 23 29 31 | Base Octal Principales factores de la base: 2 Principales factores de uno debajo de la base: 7 Principales factores de uno por encima de la base: 3 Otros factores principales: 5 13 15 21 23 27 35 37 | ||||
Fracción | Factores primas del denominador | Representación posicional | Representación posicional | Factores primas del denominador | Fracción |
1/2 | 2 | 0.5 | 0,4 | 2 | 1/2 |
1/3 | 3 | 0.3333... = 0.3 | 0.2525... = 0.25 | 3 | 1/3 |
1/4 | 2 | 0,25 | 0.2 | 2 | 1/4 |
1/5 | 5 | 0.2 | 0.1463 | 5 | 1/5 |
1/6 | 2, 3 | 0.16 | 0.125 | 2, 3 | 1/6 |
1/7 | 7 | 0.142857 | 0.1 | 7 | 1/7 |
1/8 | 2 | 0.125 | 0.1 | 2 | 1/10 |
1/9 | 3 | 0.1 | 0.07 | 3 | 1/11 |
1/10 | 2, 5 | 0.1 | 0,06314 | 2, 5 | 1/12 |
1/11 | 11 | 0.09 | 0.0564272135 | 13 | 1/13 |
1/12 | 2, 3 | 0,083 | 0,052 | 2, 3 | 1/14 |
1/13 | 13 | 0.076923 | 0.0473 | 15 | 1/15 |
1/14 | 2, 7 | 0,0714285 | 0,04 | 2, 7 | 1/16 |
1/15 | 3, 5 | 0,06 | 0.0421 | 3, 5 | 1/17 |
1/16 | 2 | 0,0625 | 0,04 | 2 | 1/20 |
1/17 | 17 | 0.0588235294117647 | 0.03607417 | 21 | 1/21 |
1/18 | 2, 3 | 0,05 | 0,034 | 2, 3 | 1/22 |
1/19 | 19 | 0.052631578947368421 | 0.032745 | 23 | 1/23 |
1/20 | 2, 5 | 0,05 | 0,03146 | 2, 5 | 1/24 |
1/21 | 3, 7 | 0.047619 | 0.03 | 3, 7 | 1/25 |
1/22 | 2, 11 | 0,045 | 0,02721350564 | 2, 13 | 1/26 |
1/23 | 23 | 0.0434782608695652173913 | 0.02620544131 | 27 | 1/27 |
1/24 | 2, 3 | 0,0416 | 0,025 | 2, 3 | 1/30 |
1/25 | 5 | 0,04 | 0.02436560507534121727 | 5 | 1/31 |
1/26 | 2, 13 | 0,0384615 | 0,02354 | 2, 15 | 1/32 |
1/27 | 3 | 0.037 | 0.022755 | 3 | 1/33 |
1/28 | 2, 7 | 0,03571428 | 0,02 | 2, 7 | 1/34 |
1/29 | 29 | 0.0344827586206896551724137931 | 0.0215173454106475626043236713 | 35 | 1/35 |
1/30 | 2, 3, 5 | 0,03 | 0,02104 | 2, 3, 5 | 1/36 |
1/31 | 31 | 0.032258064516129 | 0.02041 | 37 | 1/37 |
1/32 | 2 | 0,03125 | 0,02 | 2 | 1/40 |
Números irracionales
La siguiente tabla muestra las expansiones de algunos números irracionales comunes en decimal y octal.
Número | Representación posicional | |
---|---|---|
Decimal | Octal | |
√2 (la longitud de la diagonal de un cuadrado de unidad) | 1.414213562373095048... | 1.3240 4746 3177 1674... |
√3 (la longitud de la diagonal de un cubo de unidad) | 1.732050807568877293... | 1.5666 3656 4130 2312... |
√5 (la longitud de la diagonal de un rectángulo 1×2) | 2.236067977499789696... | 2.1706 7363 3457 7224... |
φ (fi, la relación de oro = (1+√5)/2) | 1.618033988749894848... | 1.4743 3571 5627 7512... |
π (pi, la relación de circunferencia al diámetro de un círculo) | 3.141592653589793238462643 383279502884197169399375105... | 3.1103 7552 4210 2643... |
e (la base del logaritmo natural) | 2.718281828459045235... | 2.5576 0521 3050 5355... |
Contenido relacionado
Generador lineal congruente
Geometría esférica
Juan Napier