Operaciones de bit

wintermute
06 de Abril del 2004
¡Hola, compañeros!

Os quiero plantear un nuevo problema que me ha surgido. Vuelco a un fichero binario los datos obtenidos por el MSComm, y el problema es que tengo que ir recogiendo un número x de bits. Poniendo un ejemplo, que queda más claro: Pongamos, por ejemplo, el primero byte como 10000101. Ahora el problema es que tengo que recoger los 4 primeros bits. Pero claro, para otros campos tengo que recoger distintos números de bits de distintos tamaños (hay campos desde 4 bits hasta 32 bits, y no hay separador de campos).

¿Se os ocurre cómo podría solucionarlo? En principio, el fichero puede tener un tamaño ilimitado.

A mi se me había pasado por la cabeza una función para desplazamiento de bits que devuelva los bits eliminados, en lugar del número modificado. Es decir, con el ejemplo anterior, para un desplazamiento de 4 bits a la izquierda que devuelva 1000 y modifique el número dejándolo en 0101 y lo que venga detrás. Pero no sé hasta qué punto ésto es posible.

Muchas gracias de antemano por cualquier solución, sugerencia o comentario.

Un saludo...