Tipos de datos Octales y Hexadecimales

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.
 

Representación Octal:

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é?

Representación Hexadecimal:

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é?