IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Affichage d'entiers en binaire.


Sujet :

C

  1. #1
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    Par défaut Affichage d'entiers en binaire.
    Bonsoir !

    Je suis en train de coder des fonctions pour utiliser un unsigned long (4 octets - 32 bits) comme un masque de bits. Mais je ne suis pas arrivé à trouver comment afficher (via fprintf et companie) le masque en binaire. Le mieux que j'arrive à faire, c'est en hexadécimal.

    Y a-t-il une manière de le faire autre que le codage à la main ?
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    non, pas a ma connaissance
    mais c'est pas trop difficile à faire

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Affichage d'entiers en binaire.
    Citation Envoyé par Tifauv'
    Bonsoir !

    Je suis en train de coder des fonctions pour utiliser un unsigned long (4 octets - 32 bits) comme un masque de bits. Mais je ne suis pas arrivé à trouver comment afficher (via fprintf et companie) le masque en binaire. Le mieux que j'arrive à faire, c'est en hexadécimal.

    Y a-t-il une manière de le faire autre que le codage à la main ?
    Non, pas en standard. Ca fait partie des fonctions réutilisables à mettre dans sa bibliothèque personelle.

    Tu peux aussi afficher en octal avec "%o" si tu trouves ça plus clair (1 digit = 3 bits, 000..111)
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    Par défaut
    Bon, tant pis, je me contenterai de l'hexa...
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 191
    Points : 11 577
    Points
    11 577
    Par défaut
    Tu peux le faire avec la fonction itoa si bien sur tu as un compilateur Borland sous Windows. Sinon la voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    char *itoa(int value, char *string, int radix)
    {
     char tmp[32];
     char *tp = tmp;
     int i;
     unsigned v;
     int sign;
     char *sp;
     
      if (radix > 36 || radix <= 1)
       return 0;
     
     
     sign = (radix == 10 && value < 0);
     
      if (sign)
       v = -value;
      else
       v = (unsigned)value;
     
      while (v || tp == tmp)
       {
        i = v % radix;
        v = v / radix;
     
         if (i < 10)
          *tp++ = i+'0';
         else
          *tp++ = i + 'A' - 10;
       }
     
     sp = string;
     
      if (sign)
       *sp++ = '-';
     
      while (tp > tmp)
       *sp++ = *--tp;
     
     *sp = 0;
     
      return string;
    }
    Bien sur pour du binaire la base est 2.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/06/2007, 08h59
  2. affichage des entiers
    Par gorgonite dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2007, 12h59
  3. [Jfreechart] Forcer l'affichage d'entiers en ordonnée
    Par keumlebarbare dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/12/2006, 11h56
  4. Affichage d'un nombre binaire
    Par Jero13 dans le forum C
    Réponses: 5
    Dernier message: 05/12/2005, 22h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo