Bonjour à tous,
J'ai besoin d'une moulinette qui fasse ceci en JAVA.
Es-ce qu'une âme charitable pourrait m'indiquer ou je peux touver un script de ce genre ? (ça fait 10 ans que je ne code plus en JAVA et c'est un besoin hyper ponctuel)
Merci
Bonjour à tous,
J'ai besoin d'une moulinette qui fasse ceci en JAVA.
Es-ce qu'une âme charitable pourrait m'indiquer ou je peux touver un script de ce genre ? (ça fait 10 ans que je ne code plus en JAVA et c'est un besoin hyper ponctuel)
Merci
et voila la valeur la console
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 String bin = "10000000"; int val = Integer.parseInt(bin, 2); String hex = Integer.toString(val, 16); System.out.println("Valeur en Binaire : "+bin); System.out.println("Valeur en Hexadecimal : "+hex);
Valeur en Binaire : 10000000
Valeur en Hexadecimal : 80
resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int valdec = 27; System.out.println("Valeur en Binaire : "+Integer.toString(valdec, 2)); System.out.println("Valeur en Hexadecimal : "+Integer.toString(valdec, 16));en fait la fonction toString de la class Integer permet de définir la basse de sortieValeur en Binaire : 11011
Valeur en Hexadecimal : 1b
hello rolfone, merci de ton aide. En fait je doit convertir une string et non un integer en entrée ...
entrée
"On-line Testing Pages by dev.FYIcenter.com
Welcome to dev.FYIcenter.com on-line learning and testing pages."
sortie "4F6E2D6C696E652054657374696E67205061676573206279206465762E46594963656E7465722E636F6D0D0A57656C636F6D6520746F206465762E46594963656E7465722E636F6D206F6E2D6C696E65206C6561726E696E6720616E642074657374696E672070616765732E"
C'est un peu plus compliqué que ça : l'exemple qu'il donne convertit une String en binaire, puis écrit le binaire en hexa.
commons-codec propose ça. Mais c'est assez facile à faire soi-même.
Convertir une chaîne en binaire :
Écrire du binaire en hexa :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // windows-1252 est le nom du charset dérivé de latin-1 utilisé par Windows. // Un autre charset souvent utilisé est utf-8 byte[] bytes = "Ma chaîne".getBytes("windows-1252");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 char[] hexDigits = {'0', '1', ..., 'f'}; char[] chars = new char[bytes.length*2]; for(int i = 0; i < bytes.length; i++) { chars[2*i] = hexDigits[(bytes[i] >> 4) & 0xF]; chars[2*i+1] = hexDigits[bytes[i] & 0xF]; } String hex = new String(chars);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 byte[] bytes = laString.getBytes("UTF-8"); StringBuilder b = new StringBuilder(); Formatter f = new Formatter(); for (byte b : bytes) f.format("%02Xd",b) System.out.println(b.toString());
windows-1252 est à déconseillé, tu n'a aucune garantie qu'il sera disponible sur la machine de destination de l'application, autant préférer UTF-8 ou ISO-8859-1 que toutes les JVM doivent fournir.
tchize_, thelvin merci pour le coup de pouceje vais tester ça dans l'aprèsm.
Bonne journée![]()
Re ...
j'ai donc testé le code de thelvin dans ma JSP de test ...
tomcat me retoune Unhandled exception type UnsupportedEncodingException
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <%! public String bin2hex(String s){ byte[] bytes = s.getBytes("utf-8"); char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; char[] chars = new char[bytes.length*2]; for(int i = 0; i < bytes.length; i++) { chars[2*i] = hexDigits[(bytes[i] >> 4) & 0xF]; chars[2*i+1] = hexDigits[bytes[i] & 0xF]; } String hex = new String(chars); return hex; } %>
pour la ligne
j'ai testé d'autre encodage mais c'est pareil ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 byte[] bytes = url.getBytes("utf-8");
Pour le script de tchize_ c'est pareil au niveau de l'appel à la fonction getBytes ... le code m'échappe un peu à vrai dire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public String bin2hex(String s){ byte[] bytes = s.getBytes("UTF-8"); StringBuilder b = new StringBuilder(); Formatter f = new Formatter(); for (byte c : bytes) f.format("%02Xd",c) System.out.println(b.toString());
Partager