[C con Clase] + de Campos de bits

Yudenis Martínez Abreu ymabreu en ingenieria.unica.cu
Jue Feb 22 08:38:04 CET 2007


Hola.

Deja ver si entendí. No importa que el tipo sea char o int lo que importa es que lo que le boy a meter dentro tenga tantos bits como bits(valga la redundancia) tenga el "lugar" donde los boy a meter?

Nuevamente muchas gracias, la verdad no esperaba una respuesta a esta hora. Creo que es de reconocer la labor que hacen en esta lista que sin dudas es un gran logro.

                                                                     Yudenis


 
________________________________

Hola Yudenis,

El pasado 2007-02-22 06:03:47, ymabreu escribió:

y> Hola. Tengo una duda con esto de los campos de bits en el capitulo 11;
y> Entiendo lo de "picar" un entero para guardar números en dependencia de su tamaño, pero el de los char no lo entiendo bien, alguien podrían ponerme un ejemplo donde se utilice.
y> 

Partimos de la idea que 'char' siempre ocupa 1 byte. Por lo tanto, sólo tenemos 8 bits con que manejar. Siguiendo los ejemplos en la lista, tenemos,

struct mapaBits
{
  unsigned char bit0:1;
  unsigned char bit1:1;
  unsigned char bit2:1;
  unsigned char bit3:1;
  unsigned char bit4:1;
  unsigned char bit5:1;
  unsigned char bit6:1;
  unsigned char bit7:1;
};

Aquí, creamos 8 campos de un solo bit cada uno, para que ocupen completamente en 1 'char'. Como acabo de decir, 1 char = 1 byte = 8 bits.

El otro ejemplo en el capítulo 11 es el siguiente:

struct mapaBits3
{
  unsigned char campo1:5;
  unsigned char campo2:5;
};

Aquí, intentamos crear dos campos de 5 bits cada uno para que ocupen 1 char. Sin embargo, haciendo cálculos, nos sale que esta estructura como mínimo será e 10 bits. Por lo tanto, no podemos usar 1 char, sino 2. Con esto, la estructura ocupa 2 bytes = 16 bits, aunque usemos 10 bits en total.


Espero que esto era lo que pedías.

Steven
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 5757 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070222/0159cb7d/attachment.bin>


Más información sobre la lista de distribución Cconclase