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

avec Java Discussion :

concaténation bit à bit dans int


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut concaténation bit à bit dans int
    Bonjour,
    j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    short w1;
    int x;
    ...........
    //en hexa (x>>8) --> 3
    //w1.byteValue() --> 7b
    
    //je veux avoir dans x = 37b
    
    x = (x>>8)|(w1.byteValue());
    la concaténation que j'ai mis ne marche pas, ça ne me donne que 7b
    est-ce que je dois appliquer un masque pour spécifier le positionnement des bits?? comment faire ??
    ?????????
    il n'y a pas de réussite facile, ni d'échec définitif

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = (x & 0xFF00) | (w1 & 0x00FF);
    Les parenthèses sont facultatives.

  3. #3
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par Uther Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = (x & 0xFF00) | (w1 & 0x00FF);
    Les parenthèses sont facultatives.
    si vous pouvez me donner un petit éclaircissement sur le masque, je m'y perd un peu.
    normalement le int il est codé sur 4 Octets => 0&FFFF, et le short sur 2 octets =>0xFF ??? ou alors le F correspond à 4 bits et non à 8 bits
    il n'y a pas de réussite facile, ni d'échec définitif

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    En effet une lettre en hexadécimal correspond à un chiffre entre 0 et 16 et code donc seulement 4 bits.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    un int a 4 octets et donc en hexa est représenté par huit chiffres.
    un short a 2 octets et donc en hexa est représenté par quatre chiffres.

    Ce n'est pas vraiment ce que vous avez écrit...

  6. #6
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par Uther Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = (x & 0xFF00) | (w1 & 0x00FF);
    Les parenthèses sont facultatives.
    ça marche enfin
    Merci bcp
    il n'y a pas de réussite facile, ni d'échec définitif

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je pense que ça marche tel que avec les valeurs en présence, mais pour respecter la demande à la lettre, ce devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = (x & 0xFFFFFF00) | (w1 & 0x00FF);
    Qui peut aussi se noter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = (x & (-1 << 8)) | (w1 & 0xFF);
    Et de pas mal d'autres manières.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Lire les bits d'un INT....
    Par babarpapa dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 10h31
  2. Nombre de bits à 1 dans un unsigned / index du 1er bit à 1
    Par Erickann dans le forum Assembleur
    Réponses: 2
    Dernier message: 20/11/2005, 22h51
  3. [Débutant][RISC]Compter le nombre de bit à 1 dans un octet ?
    Par Pill_S dans le forum Autres architectures
    Réponses: 7
    Dernier message: 23/12/2004, 23h24
  4. Concaténation de bits
    Par monia dans le forum C
    Réponses: 10
    Dernier message: 12/05/2004, 14h56

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