Opération sur les bytes avec Byte.parseByte
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:
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:
Byte.parseByte("10000010",2);
refuse de passer :
Code:
Exception in thread "main" java.lang.NumberFormatException: Value out of range. Value:"10000010" Radix:2
Comment faire donc ?
Je vous remercie tous !!!