Los datos Octales y Hexadecimales son números enteros que están disponibles en la mayoría de lenguajes de programación. Proporcionan una notación adecuada para la construcción de valores enteros en el sistema númerico binario usado por la memoria del ordenador. Todos los valores enteros se exprean dentro del ordenador en binario; sin embargo, las secuencias de dígitos binarios son excesivamente largas y difíciles de tratar.
Supongamos que queremos escribir la forma binaria de un número decimal 9587.
Sería 958710 = (10010101110011)2 La expresión podría ser
más sencilla de leer si agrupamos los dígitos.
Se suponen grupos de tres, 958710 = (|010|010|101|110|011)2 donde el | se usa como separador de cada grupo de tres. El cero se añade para completar el extremo del grupo de la izquierda. Cada grupo de tres dígitos puede comprimirse en uno solo utilizando los símbolos del siguiente cuadro:
GRUPO: |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
SÍMBOLO: |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Tenga en cuenta que los símbolos utilizados para representar cada grupo son el valor entero de cada grupo. Usando estos símbolos el número puede expresarse de forma más compacta: 958710 = (2|2|5|6|3). Debido a que los símbolos son los mismos que los utilizados en la forma de contar con base 8, esta notación se llama Octal. Además, no hay necesidad de mantener las particiones entre números: 958710 = 225638
En la notación del ordenador no es fácil manejar subíndices, existen otra notaciones. En IDL la notación Octal se representa como 'n'O. Para el ejemplo anterior sería: '22563'O. Las letras B y L se utilizan para indicar que un valor es un byte o un entero largo. 22563L o '22563'OL sería un entero largo y 112B o '112'OB sería un byte. El mayor número de bytes posible es 377B. ¿Podría explicar por qué?
Se suponen grupos de 4 dígitos binarios, 958710 =
(|0010|0101|0111|0011|)2 Los grupos de 4 pueden tener diferente
simbolización, existiendo 16 combinaciones diferentes de 4 dígitos binarios.
Los símbolos serán los números comunes y las letras a,b,c,d,e,f pudiendo ser
mayúsculas o minúsculas. La tabla de símbolos es:
GRUPO: |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
SÍMBOLO: |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
Con esta representación el número se queda 958710= 257316 En IDL la representación Hexadecimal se indica como'2573'X. Para representar un byte se usa la notación '2573'XB y para representar un número entero largo se usa '2573'XL. El mayor valor byte posible es 'FF'XB, el mayor valor entero posible '7FFF'X y el mayor valor entero largo '7FFFFFFF'X. ¿Puede explicar por qué?