Ecrire en binaire dans un fichier

Signaler
Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
-
Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
-
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

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
3
utilise les CFile pour les accès fichier par defaut elle enregistre en binaire.

be linux
Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
1
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
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
3
pheno ecrit directement tes chaines en binaires dans le fichier.

sans les convertir

be linux
Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
1
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
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
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.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
ymca2003> comme d'hab merci.
Je devrais etre un peu plus dispo dans quelques jours.

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

Chevalier Pheno Starboard, membre de la Freeman-Corp