Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Campos de bits (https://www.clubdelphi.com/foros/showthread.php?t=54154)

Guillermo80 10-03-2008 20:10:30

Campos de bits
 
He estado mirando en el libro de Delphi4 y por internet pero no encuentro si existe algún operador para declarar un campo de bit. En C se utiliza el operador " : ", y dice que es algo de relativa "exclusividad" de C, pero yo me niego a creer que no exista una equivalencia para Delphi.

Por otra parte, si únicamente me hiciese falta declarar un campo de 1bit, me pregunto si me valdría con declarar simplemente un booleano.:confused:

Un saludo.

cHackAll 10-03-2008 22:22:54

Cita:

Empezado por Guillermo80 (Mensaje 272083)
He estado mirando en el libro de Delphi4 y por internet pero no encuentro si existe algún operador para declarar un campo de bit. En C se utiliza el operador " : ", y dice que es algo de relativa "exclusividad" de C, pero yo me niego a creer que no exista una equivalencia para Delphi.

Por otra parte, si únicamente me hiciese falta declarar un campo de 1bit, me pregunto si me valdría con declarar simplemente un booleano.:confused:

Un saludo.

En realidad cuando el opcode era optimizado para 8 bits, declarar una variable de un byte (8 bits) era lo óptimo, lo mismo con la arquitectura de 16 bits y con la actual de 32 bits. Al declarar una variable de un bit en una base de datos, sistema operativo o en memoria; el motor, nucleo o microprocesador lo procesa como un byte, el compilador trabaja con un byte (no así con un bit) alojándolo en un byte entero (sea en memoria volatil o no).

En resumen... un bit es algo teorico/practico, "físicamente" siempre será un byte. Ahora que es lo mejor? trabajar con un Boolean (Byte) o un LongBool(DWORD)?... yo me quedo con ambos porque ambos producen un muy parecido opcode y con los microprocesadores de 32 bits la velocidad es hasta mayor con un DWORD. PERO, si la idea es ahorrar espacio en disco me quedo con el byte.

PD: Delphi permite trabajar a nivel de bits con not, xor, and, or, shl, shr, set, hasta se puede utilizar codigo en lenguaje de maquina y utilizar ror, rol, adc, acc, etc...

Saludos

Guillermo80 11-03-2008 08:39:45

ok
 
Sí, lo del booleano es lo que finalmente voy a hacer, porque además solo es para tratar un bit, ya te contaré si fue bien la cosa (cuando pruebe otros cientos de cosas que tengo en paralelo, claro :D).

Gracias y un saludo¡


La franja horaria es GMT +2. Ahora son las 08:04:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi