Ecriture Fichier Binaire bit a bit [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
9 janvier 2006
-
nobpn
Messages postés
13
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
9 janvier 2006
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
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++
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
2
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
Messages postés
13
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
9 janvier 2006

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!
--------------------------------------------------