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.

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 = "";
              }
 
        }
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.
Et là,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Byte.parseByte("10000010",2);
refuse de passer :

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
Comment faire donc ?

Je vous remercie tous !!!