• Viernes 8 de Noviembre de 2024, 16:40

Autor Tema:  Datos Boolean  (Leído 1940 veces)

aguila3000

  • Miembro activo
  • **
  • Mensajes: 26
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.conoce3000.com
Datos Boolean
« en: Viernes 4 de Enero de 2008, 16:22 »
0
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

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Datos Boolean
« Respuesta #1 en: Viernes 4 de Enero de 2008, 17:02 »
0
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.

aguila3000

  • Miembro activo
  • **
  • Mensajes: 26
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.conoce3000.com
Re: Datos Boolean
« Respuesta #2 en: Viernes 4 de Enero de 2008, 17:58 »
0
:blink:
Gracias.
Pero podrias explicarme un poco mejor tu ejemplo, para facilitar el alineamiento.


Att.
aguila3000

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Datos Boolean
« Respuesta #3 en: Viernes 4 de Enero de 2008, 19:37 »
0
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.

aguila3000

  • Miembro activo
  • **
  • Mensajes: 26
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.conoce3000.com
Re: Datos Boolean
« Respuesta #4 en: Viernes 4 de Enero de 2008, 20:16 »
0
ok, gracias por tu ayuda

att.
aguila3000