Visual Basic - Operaciones de bit

Life is soft - evento anual de software empresarial
 
Vista:

Operaciones de bit

Publicado por wintermute (11 intervenciones) el 07/04/2004 10:50:32
¡Hola, compañeros!

Os quiero plantear un nuevo problema que me ha surgido. Tengo que ir recogiendo un número x de bits de un fichero binario. 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...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Operaciones de bit

Publicado por POLA (522 intervenciones) el 07/04/2004 11:03:41
Estimado amigo, si vas a tratar ó manejar cadenas se me ocurre que utilices las funciones de manejo de cadenas (mid, left y right). Para el problema que planteas creo que son las mas adecuadas.

Saludos Pola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones de bit

Publicado por wintermute (11 intervenciones) el 07/04/2004 11:21:05
Hola, Pola:

Gracias por tu respuesta, pero no son cadenas. Se trata de valores numéricos, los cuales ocupan, por ejemplo, el primero 4 bits, el siguiente 2, el siguiente 14, etc..., y claro, no veo cómo puedo recoger en una variable los datos concretos (si primero leo 1 byte para recoger los primeros 4 bits, después necesitaría recoger los 4 bits que me quedaron, más los que me falten para completar el siguiente campo, que pueden ser de hasta 32 bits).

Espero que haya quedado algo más claro mi problema, que no lo expliqué demasiado bien antes.

Un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones de bit

Publicado por wintermute (11 intervenciones) el 07/04/2004 11:24:06
Hola, Pola:

Gracias por tu respuesta, pero no son cadenas. Se trata de valores numéricos, los cuales ocupan, por ejemplo, el primero 4 bits, el siguiente 2, el siguiente 14, etc..., y claro, no veo cómo puedo recoger en una variable los datos concretos (si primero leo 1 byte para recoger los primeros 4 bits, después necesitaría recoger los 4 bits que me quedaron, más los que me falten para completar el siguiente campo, que pueden ser de hasta 32 bits).

Espero que haya quedado algo más claro mi problema, que no lo expliqué demasiado bien antes.

Un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones de bit

Publicado por POLA (522 intervenciones) el 07/04/2004 11:32:50
Hola, has probado en introducir toda los bits en una matriz?, podrías ir redimensionandola en función de los bits ya tratados. Espero haberme explicado correctamente.

Saludos Pola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones de bit

Publicado por wintermute (11 intervenciones) el 07/04/2004 14:16:38
Hola,

¿te refieres a un array de bytes? Se me había pasado por la cabeza, pero creo que tendría el mismo problema. ¿Se puede aplicar una máscara de bits a un número que ocupara, por ejemplo, dos posiciones del array? Seguramente la solución pueda pasar por ahí, pero no termino de ver cómo resolver el tema éste de que un campo puede estar en varias posiciones del array a la vez...

Un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar