Ecriture Fichier Binaire bit a bit

Résolu
nobpn Messages postés 13 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 9 janvier 2006 - 7 janv. 2006 à 14:28
nobpn Messages postés 13 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 9 janvier 2006 - 9 janv. 2006 à 21:06
Bonjour,



Je souhaiterai ecrire dans un fichier bianire bit a bit.



Je m'explique : il s'agit de compression :

je recupere un tablo de int = les bits qui compose mon entier de
départ, si celui ci est egale a 00000000 alors je souhaiterai ecrire
seulement 1 bit 0.



Tout ce que j'ai trouvé jusqu'a present m'ecri : 00000000. daonc pas de compression !



N'hésitez pas à poser un bout de code si possible .



D'avance merci !

--------------------------------------------------
Me... That's all, that's enough!
--------------------------------------------------

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2006 à 14:48
On n'écrit ni n'adresse 1 bit, la p^lus petite entité adressable est l'octet. On peut seulement manipuler les bits à l'intérieur d'un octet.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
8 janv. 2006 à 13:54
Pour manipuler des bit: un seul moyen: accumuler les bit et quand on en a 8->un octet:

class BitWriter:
{
...
....
void AddBit(bit b);

int nb_bits;
unsigned char cur_byte;// initialise à 0
};

void BitWriter::AddBit(bit b)
{
cur_byte=cur_byte<<1 + b;
nb_bits++;
if(nb_bits==8)
{
WriteByte(cur_byte);
cur_byte=0;
nb_bits=0;
}
}

A m a u r y
0
nobpn Messages postés 13 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 9 janvier 2006
9 janv. 2006 à 21:06
Merci de vos réponses !



Meme si celle ci me conviennent pas... lol



Tant pis, je vais remplir 1 octet avant de lécrire.



Encore merci !



Schuuuuuuuuuuuuuuuuuuuuuuuuuuuuuus

--------------------------------------------------
Me... That's all, that's enough!
--------------------------------------------------
0
Rejoignez-nous