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 :

bits operations


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Points : 36
    Points
    36
    Par défaut bits operations
    Hello, bonjour a tous.

    J'ai besoin de tranformer unWORD en 2 * 8 bits, pour un protocol rs232.
    Le pb c'est que je suis une truffe en ce qui concrene les operations de bits

    Si qq un pouvais m'aider la dessus,(que je comprenne une fois pour toute)
    ce serais sympa

    Merci d'avance...

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Tu dois te representer tes variables en binaire.
    Ensuite tu les travailles avec ces operateurs :

    AND: &
    exclusive OR: ^
    inclusive OR: |
    Shift left : <<
    Shift right: >>


    Ce sont des operations bit à bit. ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       0100 1010               0100 1010            
    &  1111 1111            |  0000 0000
    -------------          -------------
       0100 1010               0100 1010
    un exemple pour partager ton WORD en deux bytes.

    le byte inf avec un masque sur la partie basse : ton_word & 00001111
    le byte sup par un decallage a droite : ton_word >> 4
    Pour les details, cherche tout seul !

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Re: bits operations
    Citation Envoyé par Tosh
    J'ai besoin de tranformer unWORD en 2 * 8 bits, pour un protocol rs232. Le pb c'est que je suis une truffe en ce qui concrene les operations de bits.
    Pas besoin de manipulation de bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    low = w % 256;
    high = (w / 256) % 256;
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par ZaaN
    un exemple pour partager ton WORD en deux bytes.

    le byte inf avec un masque sur la partie basse : ton_word & 00001111
    le byte sup par un decallage a droite : ton_word >> 4
    • un byte fait 8 bits;
    • 00001111 est une constante octale
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Points : 36
    Points
    36
    Par défaut
    Meric, j'ai utilisé la soluce de Jean marc, ca fonctionne a la perfection.

    J'imagine que cette solution reviens a créer un mask de bits, le pb c'est que je n'ai pas vraiment compris...

    Par exemple si je dois tronconner un 32bit en 4 fois 8 bits ca nous donnerais quoi ?

    Merci.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    256 == 0x100 == 100000000 en binaire
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Tosh
    J'imagine que cette solution reviens a créer un mask de bits, le pb c'est que je n'ai pas vraiment compris...
    Moi j'ai compris la question comme étant "je dois exprimer un nombre en base 256", donc c'est ce que j'ai fait de la manière la plus claire possible.

    Tant qu'on manipule des non signés, il faudrait un compilateur bien si peu optimisant pour générer un code moins efficace qu'avec du masquage que si on utilise ce compilateur, c'est que les performances ne sont pas une préoccupation. Et si on manipule des signés, faire les choses de manière arithmétique évite bien des surprises potentielles avec les manipulations de bits.

    Par exemple si je dois tronconner un 32bit en 4 fois 8 bits ca nous donnerais quoi ?
    Est-ce que ma reformulation te permet de comprendre?
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. operations sur les Bits "<<" ">>"
    Par chrix10.2 dans le forum Général Python
    Réponses: 3
    Dernier message: 03/09/2007, 14h11
  2. Operations bit à bit sur des structures
    Par DarkNagash dans le forum C
    Réponses: 4
    Dernier message: 16/03/2006, 13h59
  3. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  4. Debugger 16-32 bits
    Par Mat dans le forum Assembleur
    Réponses: 4
    Dernier message: 28/06/2002, 11h34
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

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