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

Java Discussion :

décalage en java


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 16
    Points
    16
    Par défaut décalage en java
    Bonsoir

    J'arrive pas à comprendre à quoi servent certaines instructions dans cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private static int getBit(byte[] data, int pos) {
      int posByte = pos/8;  //OK la je divise
      int posBit = pos%8;//je récupère le reste
      byte valByte = data[posByte]; // je met dans valByte l'octet de position posByte
      int valInt = valByte>>(8-(posBit+1)) & 0x0001; 
    // est ce que ici je fais un décalage adroite à l'intérieur de l'octet (décalage de bit??? ) et c'est quoi le 0x0001 (hexa??)
      return valInt;
           }
    merci d'avance.

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    salut,

    un octet (ou byte en anglais) est composé de 8 bits.

    Admettons que tu aies le byte 11101101.
    Toi tu veux récupérer le bit en gras souligne, donc celui qui a la position 2 : au vu de la façon de compter de ton algo, le bit le plus à gauche (de poids fort) a la position 0 et celui le plus à droite (de poids faible) a la valeur 7.

    Tu vas commencer par faire un décalage à droite de façon à te débrouiller pour que le bit qui t'intéresse soit le bit le plus à droite (ie. le bit de poids le plus faible).

    Ici, tu décales à droite de 5:

    11101101 devient 00000111

    Ensuite tu ne veux récupérer que le bit le plus à droite, d'où l'application d'un "ET logique" avec la valeur 0x00000001 (noté 0x0001 en hexa car stocké dans un entier de 32bits).

    00000001 & 00000111 = 00000001.

    Voilà, tu a bien récupéré ton bit
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    ok j'ai bien compris merci beaucoup

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

Discussions similaires

  1. Décalage horaire( Windows 7 java 1.5.0_06)
    Par louay02 dans le forum Windows 7
    Réponses: 0
    Dernier message: 26/03/2013, 17h42
  2. [Windows 7 / Java 1.5.0_06] Décalage horaire
    Par louay02 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 26/03/2013, 16h53
  3. Tableaux insertion et décalage Java
    Par hybayahya dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/06/2012, 01h04
  4. Décalage heure système et heure "Java"
    Par nicocolt dans le forum Général Java
    Réponses: 4
    Dernier message: 01/02/2011, 16h34
  5. Décalage Cyclique Java
    Par domino313131 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/12/2010, 10h06

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