Ecriture et lecture de bits dans un fichier [C++] - Programmation
Marsh Posté le 17-10-2001 à 23:39:59
tu lis et ecris par octet, puis tu traite les bits dans chaque octet pq à ma connaissance, y'a pas de methode pour traiter que des bits...
Marsh Posté le 18-10-2001 à 09:26:26
Alload,
wpk, a parfaitement raison. Ton problème n'a pas de solution directe a cause de la granularité. On ne peut manipuler directement un bit. Même en language machine il n'existe pas de groupes d'instructions qui te permettent de manipuler du bit a bit. Les registres de bit n'existent pas, etc ...
Prend l'exemple des disques dur. Tu crois que tu accèdes octet par octet ou long par long a une donnée sur le disque ? Non c'est secteur par secteur, soit 512 octets ! Dans de ce genre de prob toujours voir la granularité, une fois que tu la maitrises bien ça peut même devenir une source d'inspiration pour les otpimisations
[edtdd]--Message édité par Barbarella--[/edtdd]
Marsh Posté le 18-10-2001 à 14:26:17
En fait je veux compresser des données en utilisant l'algorithme d'Huffman, est-ce que quelqu'un a déjà fait un truc de ce genre? Et si oui, pourrait-il me dire comment il a fait?
Marsh Posté le 18-10-2001 à 14:29:52
alload> salut
Huffman c archi classique, fais une recherche sur google tu devrais trouver des tas de sources en C++.
Sinon pour ton pb d'écriture bit à bit, tu peux écrire une fonction qui joue le rôle de tampon. Tu lui envoies les bits un par un, elle les stocke et quand elle arrive à 8 bit, elle écrit l'octet correspondant, et elle repart à zéro... utilise des variables static ca pourra t'aider
Marsh Posté le 17-10-2001 à 22:19:37
J'ai besoin de pouvoir créer un fichier bit après bit, et ensuite de pouvoir le lire bit après bit.
D'habitude pour créer un fichier je fais:
ofstream file(openpath);
file << "hello" << endl;
file.close();
Mais avec cela je ne peux pas écrite directement un bit, donc connaissez-vous une solution à mon problème?
Merci.