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

Collection et Stream Java Discussion :

Convertir un tableau de byte en un tableau d'entier


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut Convertir un tableau de byte en un tableau d'entier
    Salut à tous

    Voilà j'ai un serveur UDP qui m'envoie un tableau d'entier (int) que je récupère dans un tableau de byte et j'aimerais savoir s'il est possible de récupérer mes entier par un simple "cast".
    Exemple en C on peut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int *pEntier;
    char carac[40];
    pEntier=(int*)carac;
    Et là je récupère un tableau de 10 entiers;

  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
    Le plus simple est de wrapper ton tableau de bytes dans un ByteBuffer avec ByteBuffer.wrap(byte[])

    Ensuite, tu crées une vue de ce ByteBuffer sous forme de IntBuffer avec asIntBuffer()

    Ce qui te permet de parcourir ces octets comme si c'était des ints.
    Par défaut c'est en big-endian, s'il faut changer, il faut le faire sur le ByteBuffer avant de créer la vue, avec order(ByteOrder)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Ca marche impeccable. Voici le petit bout de code de test que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    byte[] mem={1,0,0,0,2,0,0,0,3,0,0,0};
    ByteBuffer buf= ByteBuffer.wrap(mem);
    buf.order(ByteOrder.LITTLE_ENDIAN);
    IntBuffer tab=buf.asIntBuffer();
    int x=tab.get(2);
    et x vaut bien 3

    Merci

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

Discussions similaires

  1. Convertir un long et un float en tableau de byte
    Par Kiruaa dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 20/03/2013, 15h46
  2. convertir un objet en tableau de byte
    Par hammag dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 12/10/2006, 13h12
  3. [C#] Convertir un tableau de byte en Image
    Par goulhasch dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2005, 10h12

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