Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Langage
Langage Langage C++, Programmation Orientée Objet, Templates, etc. Avant de poster : FAQ C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/01/2013, 19h40   #1
walidzola
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 6
Points : 3
Points : 3
Par défaut affichage format binaire

Bonsoir;
Je travaille sur un programme de compression de fichiers en cpp avec l'algorithme de Hufman.
Au moment où je dois écrire mon arbre dans le fichier, j'ai rencontré un problème. Le code binaire des caractères est tjrs à 0 . La fonction suivante m'affiche tjrs des 0 même en passant un caractère comme constante.
Code :
1
2
3
4
5
6
7
8
Void afficherEnBinaire (char b){
   Char c = b;
   For ( int i = 0; i < 8; ++i){
       If (c & 128 != 0) cout << 1;
       Else cout << 0;
       C <<= 1;
   }
}
Merci et bonne année.
walidzola est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 12h17   #2
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 371
Détails du profil
Informations personnelles :
Nom : Homme Germino Legrand
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2010
Messages : 371
Points : 1 875
Points : 1 875
Bonjour,
Déjà si tu veux que ceci soit du C++, il faut réécrire tous les mots-clé qui ne prennent pas de majuscule. Le C++ est sensible à la casse.
__________________
Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 13h35   #3
koala01
Modérateur
 
Avatar de koala01
 
Philippe Dunski
Inscription : octobre 2004
Messages : 8 629
Détails du profil
Informations personnelles :
Nom : Philippe Dunski
Âge : 41

Informations forums :
Inscription : octobre 2004
Messages : 8 629
Points : 13 354
Points : 13 354
Envoyer un message via MSN à koala01 Envoyer un message via Skype™ à koala01
Salut,

Heuu... une question idiote s'il en est, mais...

Pourquoi ne pas utiliser directement std::bitset pour avoir quelque chose de simple
Code :
1
2
3
4
5
6
7
8
9
#include <bitset>
void afficherEnBinaire (char b){
   /* "normalement" on peut considérer qu'un char est composé de 8 bits */
   std::bitset<8> bits(b);
   /* mais si on n'est pas sur, on peut utiliser en valeur définie ;)
   std::bitset<CHAR_BIT> bits(b);
   */
   std::cout<<bits.to_string();
}
Aimes tu tellement que cela te faire du mal

[EDIT]Et, tant qu'à faire, ce serait pas mal d'utiliser unsigned char au lieu de char (par définition, dans un fichier binaire, ce ne sont pas des caractères que l'on lit, mais bel et bien des valeurs non signées )
__________________
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
je ne répondrai à aucune question technique par E-mail, message visiteur ou message privé
Vous avez obtenu votre réponse pensez au bouton en bas de page
koala01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 14h51   #4
Arzar
Membre Expert
 
Inscription : mai 2008
Messages : 937
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 937
Points : 1 785
Points : 1 785
Citation:
Envoyé par walidzola Voir le message
Attention, l'opérateur & est moins prioritaire que l'opérateur != donc ce code signifie :
Arzar est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h18.


 
 
 
 
Partenaires

Hébergement Web