Ecrire bit à bit dans un fichier ?
Ico
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Actuellement étudiant en L2 informatique, l'un de nos TP à pour objectif de créer un programme de compression de fichier sur le modèle de Huffman.
Il s'agit ainsi d'associer à chaque caractère d'un fichier un code binaire plus ou moins long selon sa fréquence d'apparition.
Cette partie du TP ne m'a pas posé de problème particulier. Cependant, lorsque je remplace dans mon fichier chaque lettre par son code binaire, la taille du fichier augmente au lieu de diminuer. J'imagine que celà est dû au fait que les '0' et '1' de mes codes binaires sont considérés dans le fichier comme des caractères et donc codés sur un trop grand nombre de bits.
Je souhaiterais donc pouvoir écrire ces '0' et '1' dans mon fichier et qu'il soit codé sur un seul bit. Débutant en C, j'ignore comment il faut faire. Après quelques recherches sur internet, j'ai trouvé certaines notions qui semblent utile, notamment celle de "buffer" mais les différents cours et tutoriels ne m'ont pas permis de comprendre cette notion.
Je voudrais donc savoir si effectivement ce buffer est la solution de mon problème et si oui, quelques explications quant à son fonctionnement.
Merci.
Actuellement étudiant en L2 informatique, l'un de nos TP à pour objectif de créer un programme de compression de fichier sur le modèle de Huffman.
Il s'agit ainsi d'associer à chaque caractère d'un fichier un code binaire plus ou moins long selon sa fréquence d'apparition.
Cette partie du TP ne m'a pas posé de problème particulier. Cependant, lorsque je remplace dans mon fichier chaque lettre par son code binaire, la taille du fichier augmente au lieu de diminuer. J'imagine que celà est dû au fait que les '0' et '1' de mes codes binaires sont considérés dans le fichier comme des caractères et donc codés sur un trop grand nombre de bits.
Je souhaiterais donc pouvoir écrire ces '0' et '1' dans mon fichier et qu'il soit codé sur un seul bit. Débutant en C, j'ignore comment il faut faire. Après quelques recherches sur internet, j'ai trouvé certaines notions qui semblent utile, notamment celle de "buffer" mais les différents cours et tutoriels ne m'ont pas permis de comprendre cette notion.
Je voudrais donc savoir si effectivement ce buffer est la solution de mon problème et si oui, quelques explications quant à son fonctionnement.
Merci.
A voir également:
- Ecrire bit à bit dans un fichier ?
- Winrar 64 bit - Télécharger - Compression & Décompression
- Power iso 32 bit - Télécharger - Gravure
- Fichier bin - Guide
- Cle windows 10 professional 64 bit gratuit - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
Tu peux regarder cette discussion :
https://codes-sources.commentcamarche.net/forum/affich-10005201-nombres-premiers-crible-d-eratosthene#4
On y parlait de l'optimisation de la mémoire en C, j'y avais posté un code qui permettait de passer de 8 booléens à 1 char (donc de 8 octets à 1 seul)
https://codes-sources.commentcamarche.net/forum/affich-10005201-nombres-premiers-crible-d-eratosthene#4
On y parlait de l'optimisation de la mémoire en C, j'y avais posté un code qui permettait de passer de 8 booléens à 1 char (donc de 8 octets à 1 seul)