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 :

Affichage de bytes en hexa


Sujet :

avec Java

  1. #1
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut Affichage de bytes en hexa
    Bonjour (2)

    Comment on affiche avec un System.out.print un tableau de byte en hexa ???

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    à la main, il faut faire toi meme la conversion vers un String.

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    J'ai essayé vec le format \xdd mais sans résultats ...

    donc faire une procédure du genre ByteTohex vers un string est la seule solution ???

    merci de la réponse

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    J'ai trouvé ce qu'il me fallait

    Je post pour info

    Pour ceux que cela intéresse : La procédure pour convertir un tableau de byte en une String en Hexa.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static String getHexString(byte[] b) {
            String result = "";
            for (int i=0; i < b.length; i++) {
                result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
            }
        return result;

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    Evites les concaténations de String dans une boucle, et préfère utiliser un StringBuffer/StringBuilder. C'est nettement moins couteux en mémoire

    Sinon plutôt que de manipuler les bits tu peux utiliser String.format() pour obtenir la valeur hexa...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public static String getHexString(byte[] bytes) {
    		StringBuilder sb = new StringBuilder(bytes.length*2);
    		for (byte b : bytes) {
    			sb.append( String.format("%x", b) );
    		}
    		return sb.toString();
    	}
    a++

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    merci pour le String.format ("%x", ...) c'est ce que je cherchais en fait ...

    sinon pour le code j'ai en fait utilisé celui ci (celui que j'ai compris)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public static String hexString( byte[] buf ) {
            char[] TAB_BYTE_HEX = { '0', '1', '2', '3', '4', '5', '6','7',
                                    '8', '9', 'a', 'b', 'c', 'd', 'e','f' };
     
            StringBuffer sb = new StringBuffer( buf.length*2 );
     
            for ( int i=0; i<buf.length; i++ ) {
                sb.append( TAB_BYTE_HEX[(buf[i]>>>4) & 0xf] );
                sb.append( TAB_BYTE_HEX[ buf[i]      & 0x0f] );
            }
            return sb.toString();
       }
    qui est déjà mieux !!!

  7. #7
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Integer.toHexString(int i) ?


    De byte à int sans les problèmes de compléments à 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static int toInt(byte b) {
    return (b & 0xFF);
    }

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

Discussions similaires

  1. manipulation tableau de byte et hexa
    Par harf18 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2010, 16h33
  2. Problème de conversion byte en hexa
    Par Arnaud Malabeux dans le forum C#
    Réponses: 11
    Dernier message: 04/05/2010, 15h24
  3. Socket, tableau de byte et Hexa
    Par hussein47 dans le forum VB.NET
    Réponses: 6
    Dernier message: 19/08/2009, 17h57
  4. Afficher un BYTE en hexa avec cout ?
    Par tintin72 dans le forum SL & STL
    Réponses: 5
    Dernier message: 11/09/2008, 11h55
  5. tableau de byte + conversion hexa
    Par andromeda dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 20/07/2007, 08h30

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