LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

2.2. Números Enteros.

 

anterior :: indice :: siguiente

 

Este tipo de dato nos permite definir el rango de valores numéricos a usarse en una variable. Los tipos de datos para usar como números enteros son los siguientes:

 

Identificador

Rango

Tamaño en bytes

desde

hasta

Int64

-9223372036854775808

9223372036854775807

8 bytes

Integer

-32768

32767

2 bytes

LongInt

-2147483648

2147483647

4 bytes

SmallInt

-32768

32767

2 bytes

ShortInt

-128

127

1 byte

Qword

0

18446744073709551615

8 bytes

Cardinal

0

4294967295

4 bytes

LongWord

0

4294967295

4 bytes

Word

0

65535

2 bytes

Byte

0

255

1 byte

 

Si se asigna un valor numérico a una variable fuera del rango definido por su tipo de dato, entonces el valor asignado a dicha variable es truncado al tamaño en bytes de la variable que recibe dicho valor.

Por ejemplo, si se declara una variable como de tipo integer y otra de tipo byte, la variable de tipo byte puede ser asignada a la variable de tipo integer, ya que los datos de tipo byte están dentro del rango permitido del tipo integer. Pero si se asigna una variable de tipo integer, que tiene un dato dentro del rango de 0 a 255, entonces puede ser asignado a una variable de tipo byte, pero si no estuviera dentro del rango de 0 a 255, entonces el valor se trunca asignando sólo un byte de los dos bytes que usa el tipo de dato integer. A continuación un ejemplo:

 

 
{$codepage UTF8}

VAR
  a : integer;
  b  : byte;

BEGIN
   //  es correcto, 230 es un numero dentro del 
   //  rango del tipo integer 
   b:=230;
   a:=b;
   Writeln(a);
   Writeln(b);
   //  El resultado se trunca, ya que 548 no esta
   //  dentro del rango del tipo byte (0-255) 
   a:=$0224; //548 en decimal 
   b:=a;
   Writeln(a);  //muestra 548=$0224
   Writeln(b);  //muestra 36 = $24
   //  es correcto, 100 es un numero dentro del
   //  rango de tipo byte (0-255)
   a:=100;
   b:=a;
   Writeln(a);
   Writeln(b);
END.
 

Código fuente 1: Asignación de datos dentro y fuera del rango.

 

Al haber varios tipos de datos para los números enteros, surge la siguiente pregunta: ¿Cual es el más recomendado usar? eso realmente depende mucho del programa que se esté haciendo y de cuanto se desea ahorrar en memoria.

Por ejemplo si se hace un programa para manipular una imagen digital, con una profundidad de color de 32 bits (32/8 = 4 bytes), entonces lo recomendado es usar tipos de datos de 4 bytes, como el longint para poder manipular cada pixel de la imagen.

Pero si la imagen digital es de 8 bits (8 bits=1 byte), entonces se deben usar tipos de datos de 1 byte.

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS