Foros del Web » Programación para mayores de 30 ;) » C/C++ »

archivos de 5 bits de unidad

Estas en el tema de archivos de 5 bits de unidad en el foro de C/C++ en Foros del Web. quiero crear archivos lo mas livianos poslibles (q ocupen poca memoria) nesesito crear un archivo que almacene valores consecutivos, pero esos valores solo pueden variar ...
 
Antiguo 16/01/2011, 15:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 16 años
Puntos: 0
archivos de 5 bits de unidad

quiero crear archivos lo mas livianos poslibles (q ocupen poca memoria)

nesesito crear un archivo que almacene valores consecutivos, pero esos valores solo pueden variar entre 0 a 31, por lo que lo mas eficiente seria almacenar un valores cada 5 bites.

por eso quiero ordenar la informacion de a 5 bits en lugar de 8.

en internet solo encuentro funciones para trabajar en modo texto, pero yo nesesitaria hacerlo en modo binario.

Hay funciones que me permitan leer y escrivir los bites de un archivo?
 
Antiguo 17/01/2011, 07:50
 
Fecha de Ingreso: junio-2006
Ubicación: España
Mensajes: 122
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: archivos de 5 bits de unidad

con el fopen puedes indicarle de leer en binario con la opcion "b", pero tambien tienes que poner delante de esta letra r para leer, w para escribir... aqui tienes un ejemplo
__________________
Twitters de famosos
 
Antiguo 17/01/2011, 09:58
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 32
Respuesta: archivos de 5 bits de unidad

Hola:

Me parece q lo q Alfonso quiere saber es si existe alguna forma de escribir hacia un fichero 5 bits en vez de 1 byte (8 bits).
Lamentablemente no existe forma de hacer eso.
En mi opinión puedes hacer 2 cosas.
- Escribir 1 byte completo para cada número, donde solamente los últimos 5 bits son los q te interesan, los otros 3 bits no se tendrían en cuenta para nada (podrías dejarlos en 0). De esta forma no estarías ahorrando nada de espacio, pero la programación se hace mucho más sencilla.
- Escribir todos los número como un arreglo continuo de bytes donde cada número puede estar en 1 o más bytes y completar con cualquier valor el último byte q escribas.
Ejemplo:
Escribir 30, 22, 17:
30 = 11110
22 = 10110
17 = 10001
Escribirías 2 bytes:
11110101 1010001X (X puede ser cualquier valor, al final será ignorado)

El problema es q programar esto es un poco más complicado, incluye hacer shifts (>> , <<) de bits y or lógicos (|).

saludos;

Nup_

Etiquetas: unidad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta



La zona horaria es GMT -6. Ahora son las 11:13.