Tengo un pequeño error en mi código que no puedo entender.Java Byte.parseByte() error
tengo una matriz de cadenas que son representaciones de datos binarios (después de la conversión de ellos a partir de hex) por ejemplo: un índice es 1011 y otro es 11100. voy a través de la matriz y de la almohadilla de cada índice con 0 de manera que cada el índice es de ocho bytes. Cuando intento de convertir estas representaciones en bytes reales que recibo un error cuando trato de analizar '11111111' El error que consigo es:
java.lang.NumberFormatException: Value out of range. Value:"11111111" Radix:2
Aquí hay un fragmento:
String source = a.get("image block");
int val;
byte imageData[] = new byte[source.length()/2];
try {
f.createNewFile();
FileOutputStream output = new FileOutputStream(f);
for (int i=0; i<source.length(); i+=2) {
val = Integer.parseInt(source.substring(i, i+2), 16);
String temp = Integer.toBinaryString(val);
while (temp.length() != 8) {
temp = "0" + temp;
}
imageData[i/2] = Byte.parseByte(temp, 2);
}
'byte''s solo permiten números en el rango de -128 a 127. Yo usaría un' int' en su lugar, que tiene números en el rango de -2.1 mil millones a 2.1 mil millones. – fireshadow52