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

Langage C++ Discussion :

Bits d'un Int


Sujet :

Langage C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 54
    Points : 40
    Points
    40
    Par défaut Bits d'un Int
    Bonjour à tous,

    Je me permets de poster sur le forum car j'ai un petit problème pour récupérer certain bit d'un int. En effet, dans mon programme je dois récupérer un Int par exemple 36 qui donne en binaire 100100, je souhaiterais récupérer certains bits par exemple le troisième bit qui vaut "1" dans notre cas. Avez vous des idées pour cela ?

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Opérateur binaire: |, &, <<, >>, ^, ~

    Et binaire: 0b100100 & 0b110000 = 0b100000
    Ou binaire: 0b100100 | 0b110000 = 0b110100
    Ou exclusif: 0b100100 ^ 0b110000 = 0b010100
    Décalage à gauche: 0b1 << 3 = 0b1000
    Décalage à droite: 0b110100 >> 3 = 0b110
    Inverse: ~0b100100 = 0b011011

    0b100100 & (1 << 2) = 0b000100

  3. #3
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    En complément, attention à la représentation des données sur ton architecture (big endian/middle endian/little endian).
    -- Yankel Scialom

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    En complément, attention à la représentation des données sur ton architecture (big endian/middle endian/little endian).
    L'endianness n'a pas d'influence dans le cas présenté, vu qu'il n'y est pas question d'accéder directement aux différents octets du int en mémoire (cast de pointeur, fichier binaire, union, etc.)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Il y a plusieurs façon de récupérer le troisième bit à 1 d'un entier ; et une des mauvaises pourrait être choisie par quelqu'un n'ayant pas le soucis d'endianness en tête. Mais comme dit Médinoc, on fait des opérations binaires (&, |, ~ et ^) sans être impacté par l'endianness tant que l'on ne n'accède pas directement aux octets individuels de la mémoire .
    -- Yankel Scialom

Discussions similaires

  1. Transférer certain bit d'un INT
    Par mansgueg dans le forum C#
    Réponses: 2
    Dernier message: 22/06/2015, 08h27
  2. Assigner des valeurs de bit dans un int
    Par alaska90 dans le forum C++
    Réponses: 3
    Dernier message: 20/03/2015, 09h57
  3. Template Int<bits>, votre avis?
    Par MatRem dans le forum Langage
    Réponses: 11
    Dernier message: 16/07/2007, 20h46
  4. de int 32 bits vers 64bits
    Par MSM_007 dans le forum C
    Réponses: 2
    Dernier message: 30/04/2007, 16h39
  5. Lire les bits d'un INT....
    Par babarpapa dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 10h31

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