Bonjour à tous,
J'ai un problème de conversions héxa -> binaire en java.
Je récupère une chaine d'héxadécimale qui se trouve codée sur 16 octets, et je veux qu'elle passe sur 8.
Je passe donc ma chaine (ex: 040d8226A4000100) en binaire, en ne prenant que les 4 derniers bits.
Ma boucle dans le code ci-dessous, me coupe mon code binaire, et m'en refait un byte. Le problème est que, à un moment, j'ai ceci à convertir en byte: 82 en héxa soit 10000010 en binaire.
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
19 String byteBuff = ""; byte[] text = new byte[8]; byte[] textl = new byte[8]; for (int i = 0; i < val.length(); i++) { //max i:16 byteBuff += StringUtils.leftPad(Integer.toBinaryString(Integer.parseInt("" + val.charAt(i), 16)), 4, "0"); //byteBuff = StringUtils.leftPad(Integer.toBinaryString(Integer.parseInt("" + val.charAt(i), 16)), 4, "0"); if (i % 2 != 0) { textl[i-1] = Byte.parseByte("01000100",2); textl[i-1] = Byte.parseByte(byteBuff,2); System.out.println(text[i-1]); byteBuff = ""; } }
Et là,
refuse de passer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Byte.parseByte("10000010",2);
Comment faire donc ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Exception in thread "main" java.lang.NumberFormatException: Value out of range. Value:"10000010" Radix:2
Je vous remercie tous !!!
Partager