maleficio | dic | oct | 3 | 2 | 1 | 0 | paso |
---|---|---|---|---|---|---|---|
0 hex | 00 dic | 00 de octubre | 0 | 0 | 0 | 0 | gramo0 |
1 hex | 01 dic | 01 de octubre | 0 | 0 | 0 | 1 | yo1 |
2 hex | 02 de diciembre | 02 de octubre | 0 | 0 | 1 | 0 | yo3 |
3 hex | 03 de diciembre | 03 de octubre | 0 | 0 | 1 | 1 | i2 |
4 hex | 04 de diciembre | 04 de octubre | 0 | 1 | 0 | 0 | norte7 |
5 hex | 05 de diciembre | 05 de octubre | 0 | 1 | 0 | 1 | metro6 |
6 hex | 06 de diciembre | 06 de octubre | 0 | 1 | 1 | 0 | a4 |
7 hex | 07 de diciembre | 07 de octubre | 0 | 1 | 1 | 1 | yo5 |
8 hex | 08 de diciembre | 10 de octubre | 1 | 0 | 0 | 0 | enF |
9 hex | 09 de diciembre | 11 de octubre | 1 | 0 | 0 | 1 | túmi |
Un maleficio | 10 de diciembre | 12 de octubre | 1 | 0 | 1 | 0 | sdo |
B hex | 11 de diciembre | 13 de octubre | 1 | 0 | 1 | 1 | aD |
C hex | 12 de diciembre | 14 de octubre | 1 | 1 | 0 | 0 | o8 |
D hex | 13 de diciembre | 15 de octubre | 1 | 1 | 0 | 1 | pag9 |
E hex | 14 de diciembre | 16 de octubre | 1 | 1 | 1 | 0 | aB |
F hex | 15 de diciembre | 17 de octubre | 1 | 1 | 1 | 1 | qA |
Parte de una serie sobre |
Sistemas de numeración |
---|
Lista de sistemas de numeración |
Octal ( base 8 ) es un sistema de numeración que tiene como base ocho .
En el sistema decimal, cada cifra es una potencia de diez . Por ejemplo:
En el sistema octal, cada cifra es una potencia de ocho. Por ejemplo:
Al realizar el cálculo anterior en el sistema decimal conocido, vemos por qué 112 en octal es igual a en decimal.
Los números octales se pueden convertir fácilmente a partir de representaciones binarias (similares a un sistema de numeración cuaternario ) agrupando dígitos binarios consecutivos en grupos de tres (empezando por la derecha, para los números enteros). Por ejemplo, la representación binaria del 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 , lo que da como resultado 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 |
Los ocho bagua o trigramas del I Ching corresponden a dígitos octales:
Gottfried Wilhelm Leibniz estableció la conexión entre trigramas, hexagramas y números binarios en 1703. [1]
Octal se empezó a utilizar ampliamente en informática cuando sistemas como UNIVAC 1050 , PDP-8 , ICL 1900 y mainframes de IBM empleaban palabras de 6 , 12 , 24 o 36 bits . Octal era una abreviatura ideal de binario para estas máquinas porque el tamaño de sus palabras es divisible por tres (cada dígito octal representa tres dígitos binarios). De modo que dos, cuatro, ocho o doce dígitos podían mostrar de forma concisa una palabra de máquina completa . También redujo los costes 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 raíces 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 a su vez en bytes de ocho bits . En estos sistemas se requerirían tres dígitos octales por byte, y el dígito octal más significativo representaría dos dígitos binarios (más un bit del siguiente byte significativo, si lo hubiera). La representación octal de una palabra de 16 bits requiere 6 dígitos, pero el dígito octal más significativo representa (de manera bastante poco elegante) solo un bit (0 o 1). Esta representación no ofrece ninguna manera de leer fácilmente el byte más significativo, porque está esparcido sobre 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 aún 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 arquitectura x86, omnipresente en la actualidad , también pertenece a esta categoría, pero el octal rara vez se utiliza en esta plataforma, aunque ciertas propiedades de la codificación binaria de los códigos de operación se hacen más evidentes cuando se muestran en octal, por ejemplo, el byte ModRM, que se divide en campos de 2, 3 y 3 bits, por lo que el octal puede ser útil para describir estas codificaciones. Antes de la disponibilidad de los ensambladores , algunos programadores codificaban manualmente los programas en octal; por ejemplo, Dick Whipple y John Arnold escribieron Tiny BASIC Extended directamente en código de máquina, utilizando octal. [11]
En informática, a veces se utiliza el sistema octal en lugar del hexadecimal, quizás más a menudo en la actualidad en relación con los permisos de archivos en sistemas Unix (consulte chmod ). Tiene la ventaja de no requerir símbolos adicionales como dígitos (el sistema hexadecimal es de base 16 y, por lo tanto, necesita seis símbolos adicionales además del 0 al 9).
En los lenguajes de programación, los literales octales se identifican típicamente con una variedad de prefijos , incluyendo el dígito 0
, las letras o
o q
, la combinación dígito-letra 0o
o el símbolo &
[12] o $
. En la convención Motorola , los números octales tienen como prefijo , mientras que una letra @
minúscula (o mayúscula [13] ) o
[13] o q
[13] se agrega como sufijo siguiendo la convención Intel . [14] [15] En Concurrent DOS , Multiuser DOS y REAL/32 así como en DOS Plus y DR-DOS varias variables de entorno como $CLS , $ON , $OFF , $HEADER o $FOOTER admiten una \nnn
notación de números octales, [16] [17] [18] 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 lenguajes más nuevos han estado 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 que un literal numérico comenzara con un carácter alfabético (como o
o q
), ya que estos podrían hacer que el literal se confundiera con un nombre de variable. El prefijo 0o
también sigue el modelo establecido por el prefijo 0x
utilizado para literales hexadecimales en el lenguaje C ; Es compatible con Haskell , [19] OCaml , [20] Python a partir de la versión 3.0, [21] Raku , [22] Ruby , [23] Tcl a partir de la versión 9, [24] PHP a partir de la versión 8.1, [25] Rust [26] y ECMAScript a partir de ECMAScript 6 [27] (el prefijo 0
originalmente representaba la base 8 en JavaScript pero podía causar confusión, [28] por lo tanto, se ha desaconsejado en ECMAScript 3 y se ha eliminado en ECMAScript 5 [29] ).
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 el contexto actual o no deseados por algún otro motivo) deben 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 utilizó para punto flotante en las computadoras Ferranti Atlas (1962), Burroughs B5500 (1964), Burroughs B5700 (1971), Burroughs B6700 (1971) y Burroughs B7700 (1972).
Los transpondedores de los aviones transmiten un código de "squawk" , expresado como un número de cuatro dígitos octales, cuando son interrogados por el radar terrestre. Este código se utiliza para distinguir los distintos aviones en la pantalla del radar.
Para convertir decimales enteras a octales, se divide el número original por la mayor potencia de 8 posible y se dividen los restos por potencias de 8 cada vez más pequeñas hasta que la potencia sea 1. La representación octal se forma con los cocientes, escritos en el orden generado por el algoritmo. Por ejemplo, para convertir 125 10 a octal:
Por lo tanto, 125 10 = 175 8 .
Otro ejemplo:
Por lo tanto, 900 10 = 1604 8 .
Para convertir una fracción decimal en 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 nula o se encuentre dentro de los límites de error aceptables.
Ejemplo: Convertir 0,1640625 a octal:
Por lo tanto, 0,1640625 10 = 0,124 8 .
Estos dos métodos se pueden combinar para manejar números decimales con partes enteras y fraccionarias, utilizando el primero en la parte entera y el segundo en la parte fraccionaria.
Para convertir decimales enteras a octales, anteponga el número con "0". Realice los siguientes pasos mientras queden dígitos en el lado derecho de la base: duplique el valor hacia el lado izquierdo de la base, utilizando 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 de modo que los puntos de la base se alineen. Si el punto de la 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 base y simplemente baje esos dígitos hacia 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. valor octal
Para convertir un número k a decimal, utilice la fórmula que define su representación en base 8:
En esta fórmula, a i 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 764 8 a decimal:
Para números octales de dos dígitos, este método equivale a multiplicar el dígito principal por 8 y sumar el segundo dígito para obtener el total.
Ejemplo: 65 8 = 6 × 8 + 5 = 53 10
Para convertir octales a decimales, anteponga el número con "0". Realice los siguientes pasos mientras queden dígitos en el lado derecho de la base: duplique el valor hacia el lado izquierdo de la base, utilizando reglas decimales , mueva el punto de la base un dígito hacia la derecha y luego coloque el valor duplicado debajo del valor actual de modo que los puntos de la base se alineen. Reste decimalmente esos dígitos a la izquierda de la base y simplemente baje esos dígitos hacia la derecha, sin modificación.
Ejemplo:
0,1 1 4 6 6 valor octal -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
Para convertir octal a binario, reemplace cada dígito octal por su representación binaria.
Ejemplo: Convertir 51 8 a binario:
Por lo tanto, 51 8 = 101 001 2 .
El proceso es el inverso del algoritmo anterior. Los dígitos binarios se agrupan de tres en tres, comenzando por el bit menos significativo y avanzando hacia la izquierda y hacia la derecha. Si es necesario, se añaden ceros a la izquierda (o ceros a la derecha del punto decimal) para completar el último grupo de tres. Luego, se reemplaza cada trío con el dígito octal equivalente.
Por ejemplo, convertir binario 1010111100 a octal:
001 | 010 | 111 | 100 |
1 | 2 | 7 | 4 |
Por lo tanto, 1010111100 2 = 1274 8 .
Convertir binario 11100.01001 a octal:
011 | 100 | . | 010 | 010 |
3 | 4 | . | 2 | 2 |
Por lo tanto, 11100.01001 2 = 34.22 8 .
La conversión se realiza en dos pasos utilizando el sistema binario como base intermedia. Se pasa del octal al binario y luego del binario al hexadecimal, agrupando los dígitos de cuatro en cuatro, que corresponden cada uno a un dígito hexadecimal.
Por ejemplo, convertir octal 1057 a hexadecimal:
1 | 0 | 5 | 7 |
001 | 000 | 101 | 111 |
0010 | 0010 | 1111 |
2 | 2 | F |
Por lo tanto, 1057 8 = 22F 16 .
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 3FA5 16 :
3 | F | A | 5 |
0011 | 1111 | 1010 | 0101 |
0 | 011 | 111 | 110 | 100 | 101 |
0 | 3 | 7 | 6 | 4 | 5 |
Por lo tanto, 3FA5 16 = 37645 8 .
Debido a que solo tienen factores de dos, muchas fracciones octales tienen dígitos repetidos, aunque estos tienden a ser bastante simples:
Base decimal Factores primos de la base: 2 , 5 Factores primos de uno por debajo de la base: 3 Factores primos de uno por encima de la base: 11 Otros factores primos: 7 13 17 19 23 29 31 | Base octal Factores primos de la base: 2 Factores primos de uno debajo de la base: 7 Factores primos de uno encima de la base: 3 Otros factores primos: 5 13 15 21 23 27 35 37 | ||||
Fracción | Factores primos del denominador | Representación posicional | Representación posicional | Factores primos 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,1 6 | 0,1 25 | 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.0 6314 | 2 , 5 | 1/12 |
1/11 | 11 | 0.09 | 0.0564272135 | 13 | 1/13 |
1/12 | 2 , 3 | 0,08 3 | 0.0 52 | 2 , 3 | 1/14 |
1/13 | 13 | 0.076923 | 0.0473 | 15 | 1/15 |
1/14 | 2 , 7 | 0.0 714285 | 0.0 4 | 2 , 7 | 1/16 |
1/15 | 3 , 5 | 0.0 6 | 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.0 5 | 0.0 34 | 2 , 3 | 1/22 |
1/19 | 19 | 0.052631578947368421 | 0.032745 | 23 | 1/23 |
1/20 | 2 , 5 | 0,05 | 0.0 3146 | 2 , 5 | 1/24 |
1/21 | 3 , 7 | 0.047619 | 0.03 | 3 , 7 | 1/25 |
1/22 | 2 , 11 | 0,0 45 | 0.0 2721350564 | 2 , 13 | 1/26 |
1/23 | 23 | 0.0434782608695652173913 | 0.02620544131 | 27 | 1/27 |
1/24 | 2 , 3 | 0,041 6 | 0.0 25 | 2 , 3 | 1/30 |
1/25 | 5 | 0,04 | 0.02436560507534121727 | 5 | 1/31 |
1/26 | 2 , 13 | 0.0 384615 | 0.0 2354 | 2 , 15 | 1/32 |
1/27 | 3 | 0.037 | 0.022755 | 3 | 1/33 |
1/28 | 2 , 7 | 0,03 571428 | 0.0 2 | 2 , 7 | 1/34 |
1/29 | 29 | 0. 0344827586206896551724137931 | 0. 0215173454106475626043236713 | 35 | 1/35 |
1/30 | 2 , 3 , 5 | 0.03 | 0.0 2104 | 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 |
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 unitario ) | 1.414 213 562 373 095 048 ... | 1.3240 4746 3177 1674... |
√ 3 (la longitud de la diagonal de un cubo unitario ) | 1.732 050 807 568 877 293 ... | 1.5666 3656 4130 2312... |
√ 5 (la longitud de la diagonal de un rectángulo de 1×2 ) | 2.236 067 977 499 789 696 ... | 2.1706 7363 3457 7224... |
φ (phi, la proporción áurea = (1+ √ 5 )/2 ) | 1.618 033 988 749 894 848 ... | 1.4743 3571 5627 7512... |
π (pi, la relación entre la circunferencia y el diámetro de un círculo) | 3.141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 ... | 3.1103 7552 4210 2643... |
e (la base del logaritmo natural ) | 2.718 281 828 459 045 235 ... | 2.5576 0521 3050 5355... |
MPDOSTIP.ZIP
colección aún más grande del autor, mantenida hasta 2001 y distribuida en muchos sitios en ese momento. El enlace provisto apunta a una versión anterior del NWDOSTIP.TXT
archivo convertida a HTML).se supone que el valor de base es 8 (octal) o 10 (decimal). El valor de base exacto que se elija depende de la implementación. ECMAScript 5 aclara que se debe utilizar 10 (decimal), pero no todos los navegadores lo admiten todavía.