SoloCodigo

Programación General => Pascal => Mensaje iniciado por: aguila3000 en Viernes 4 de Enero de 2008, 16:22

Título: Datos Boolean
Publicado por: aguila3000 en Viernes 4 de Enero de 2008, 16:22
Estuve leyendo el manual de freepascal y existen estos tipos de datos boolean :

Boolean    1 byte
ByteBool   1 byte
WordBool  2 byte
LongBool   4 byte

Podria alguien decirme que utilidad pueden tener wordbool y longbool.

Att.
aguila3000
Título: Re: Datos Boolean
Publicado por: Enko en Viernes 4 de Enero de 2008, 17:02
Están por cuestion de compatibilidad con algunos sistemas, cirtas estructuras, facilitar el alineamiento,etc...
Como ejemplo:
Código: Text
  1.  
  2. TRecord = record
  3.     a: Integer;
  4.     b: Integer;
  5.     c: Integer;
  6.     z: LongBool;
  7. end;
  8.  
  9.  
Con esto, la estructura queda alinieada a 4 bytes lo que hace mas rapido ciertos movimientos de datos aunque se desperdicie 35 bits.
Título: Re: Datos Boolean
Publicado por: aguila3000 en Viernes 4 de Enero de 2008, 17:58
:blink:
Gracias.
Pero podrias explicarme un poco mejor tu ejemplo, para facilitar el alineamiento.


Att.
aguila3000
Título: Re: Datos Boolean
Publicado por: Enko en Viernes 4 de Enero de 2008, 19:37
Código: Text
  1.  
  2. TRecord = packed record
  3.    a: Integer;
  4.    b: Integer;
  5.    c: Integer;
  6.    z: Boolean;
  7. end;
  8.  
  9.  
esta estructura ocuparía 13 Bytes y si usas simplemente
Código: Text
  1.  
  2. TRecord = packed record
  3.    a: Integer;
  4.    b: Integer;
  5.    c: Integer;
  6.    z: Boolean;
  7. end;
  8.  
  9.  
segun el compilador y su configuracion, podría ocupar 13 o 16 bytes por el alineamiento.
Por ejemplo si trabajas con estructuras dinamicas de datos, cuando le pides al sistema operativo 13 Bytes, va seguramente tardar más tiempo  reservar la memoria que si fueran los 16 bytes. (es más, lo más probable es que te reserve 16 y  solo se usen los 13 bytes) por eso a veces es bueno alenear.

Cuando tienes que trabajar con estructuras hechas en otros lenguajes puede ocurrir que Boolean no ocupe 1 Byte, por eso que por Posibilidad de compatibilidad estan los otros tipos.
Título: Re: Datos Boolean
Publicado por: aguila3000 en Viernes 4 de Enero de 2008, 20:16
ok, gracias por tu ayuda

att.
aguila3000