Ecrire en binaire dans un fichier

cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 - 7 avril 2004 à 08:25
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 - 8 avril 2004 à 08:19
Bonjour
Je dois réaliser un tp en C sur la compression avec la méthode Huffman
j ai construit l arbre et je récupère le chemin dans une chaine de caractere
exple: a = "10010"
comment puis je convertir la chaine "10010" en code binaire 10010
Je vous remercie pour toutes vos suggestions

Chevalier Pheno Starboard, membre de la Freeman-Corp

8 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 avril 2004 à 09:24
Essaie cela, devrait t'aller.

int strBinToInt(char *psz)
{
int r = 0;
char *c = psz;
while(*c) {
if(*c < '0' || *c > '1') break;
r <<= 1;
if(*c == '1') r |= 1;
c++;
}
return r;;
}

Des 'chaines' dans un algo de compression ?

ciao...
BruNews, Admin CS, MVP Visual C++
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
7 avril 2004 à 09:56
utilise les CFile pour les accès fichier par defaut elle enregistre en binaire.

be linux
0
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
7 avril 2004 à 10:08
Brunews
t aurait la bonte de me commenter le code??
car je ne comprends pas trop les decalages

Chevalier Pheno Starboard, membre de la Freeman-Corp
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
7 avril 2004 à 10:34
pheno ecrit directement tes chaines en binaires dans le fichier.

sans les convertir

be linux
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
7 avril 2004 à 12:57
Lpikachu
on doit programmer en c, pas en c++ :'(
oui mais en fait je ne vais pas ecrire de chaine de caractere dans le fichier,
si j ai la chaine "010000000", je voudrais ecrire le chiffre 127 dans le fichier 127 en binaire = 01000000
Je vous remercie de votre aide, j en parlerais au professeur demain.
Chevalier Pheno Starboard, membre de la Freeman-Corp
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
7 avril 2004 à 13:51
un peu de commentaire sur la solution de brunews:
r<<=1;
équivaut à faire une multiplication par 2:
r = r*2;

r|=1;
équivaut à fixer le bit de poids faible à 1.

mais bon ce serait plus simple si tu créait directement ta valeur binaire lors de la création de l'arbre au lieu de passer par une chaîne de caractère.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 avril 2004 à 03:18
ymca2003> comme d'hab merci.
Je devrais etre un peu plus dispo dans quelques jours.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
8 avril 2004 à 08:19
Merci beaucoup

Chevalier Pheno Starboard, membre de la Freeman-Corp
0
Rejoignez-nous