Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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 : 2
    Points
    2

    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.

  2. #2
    Expert Confirmé

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    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 : 731
    Points : 3 939
    Points
    3 939

    Par défaut

    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.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  3. #3
    Modérateur
    Avatar de koala01
    Profil pro Philippe Dunski
    Inscrit en
    octobre 2004
    Messages
    9 691
    Détails du profil
    Informations personnelles :
    Nom : Philippe Dunski
    Âge : 42

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 691
    Points : 15 768
    Points
    15 768

    Par défaut

    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
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre Expert

    Inscrit en
    mai 2008
    Messages
    1 007
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 1 007
    Points : 1 958
    Points
    1 958

    Par défaut

    Citation Envoyé par walidzola Voir le message
    Attention, l'opérateur & est moins prioritaire que l'opérateur != donc ce code signifie :

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •