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 Java Discussion :

int col = (in & 0xf) >> 2;


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 126
    Par défaut int col = (in & 0xf) >> 2;
    Bonjour,

    Quelq'un peut-il m'expliquer cette ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int col = (in & 0xf) >> 2;
    Merci

    EDIT : si (in et 0xf) on décale à droite de 2 rangs
    mais je vois pas l'intérêt...

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Nan c'est pas une condition. Il faut pas confondre & et &&.

    & est un opérateur logique bit-à-bit. Il calcule la condition ET pour tous les bits des deux opérandes, et produit un int dont les bits sont les résultats de ces ET.

    Bref, quand on fait :

    (in & 0xf) => on ne garde que les 4 bits de poids faible de in.

    Explication : 0xf, c'est 0x10 - 0x1, soit en décimal 16 - 1, donc 15.
    En binaire c'est 00010000 - 1 => 00001111
    Bref, 0xf, 15, c'est le nombre qui a ses 4 derniers bits à 1, et les autres à 0.

    Donc, quand on fait in & 0xf, on obtient un nombre dont tous les bits sont mis à zéros sauf les 4 derniers. Les 4 derniers sont les mêmes que ceux de in.


    Reste le décalage à droite. Il fait oublier les 2 derniers bits, et on ne garde que les 3e et 4e.

    Conclusion : col est un nombre composé de 2 bits, les 3e et 4e bits de in, en comptant à partir du poids le plus faible.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 126
    Par défaut
    Réponse parfaite merci.

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

Discussions similaires

  1. [.COM] Réserver de la RAM fct 48h int 21h
    Par bulerias dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 06/12/2010, 14h33
  2. calcul melangeant int et long int ?
    Par ThR dans le forum C
    Réponses: 2
    Dernier message: 06/01/2003, 01h13
  3. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37
  4. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07
  5. Les INT en mode protégé
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 8
    Dernier message: 05/12/2002, 16h13

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