Bonjour (2)
Comment on affiche avec un System.out.print un tableau de byte en hexa ???
Merci
Bonjour (2)
Comment on affiche avec un System.out.print un tableau de byte en hexa ???
Merci
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
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;
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...
a++
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(); }
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)
qui est déjà mieux !!!
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(); }
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); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager