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

API standards et tierces Java Discussion :

Conversion de tableau de byte en types primitifs


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut Conversion de tableau de byte en types primitifs
    Bonjour, j'aurais aimé savoir s'il existe une API pour convertir un tableau de byte en un type primitif, je m'explique.

    Les byte sont codés en binair en complément à 2 sur 8 bits donc par exemple un tableau de deux byte [1, -3] :

    1 : 00000001
    -3 : 10000011

    représenterais le nombre 000000110000011 sur 16 bits (donc un short).

    Et puis pour pouvoir faire l'inverse aussi.

    Si il n'y en a pas est-ce que quelqu'un peu me donner des pistes sur la façon d'implémenter ça.

    Merci.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu peux utiliser les opérateurs de décalage de bit '<<' et '>>' ainsi que l'opérateur unaire '~' pour le complément à 1, le et binaire '&' et le ou binaire '|'.

    Donc pour créer ton short, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    short nb = ( byte_1 << 8 ) | byte_2;
    EDIT : ajout de l'exemple pour plus de clarté
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Merci pour cette réponse ultra rapide je vais chercher dans ce sens.

  4. #4
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    J'ai réussis à le faire je poste le code au cas où cela intéresse quelqu'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public int toInteger(byte[] array) {
    	int result = 0;
    	int[] array2 = new int[4]; //4 car le type int est codé sur 32 bits donc 4 * 8 bits (codage du type byte)
     
    	for (int i=0; i<4; i++) {
    		array2[i] = array[i];
    	}
     
    	for (int i=0, j=3; i<4; i++, j--) {
    		if (array2[i] < 0) {
    			array2[i] += 256;
    		}
    		result += array2[i] << (j * 8);
    	}
     
    	return result;
    }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/07/2011, 09h17
  2. tableau de byte + conversion hexa
    Par andromeda dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 20/07/2007, 08h30
  3. conversion d'un tableau de bytes en string
    Par prady92 dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/03/2007, 13h47
  4. Conversion d'un objet en tableau de Byte
    Par BassBeat dans le forum VB.NET
    Réponses: 5
    Dernier message: 26/02/2007, 20h01
  5. [C# 2.0] Conversion hexadécimale dans un tableau de byte[]
    Par cyllix dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/08/2006, 12h29

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