Ошибка Java Byte.parseByte ()

У меня небольшая ошибка в коде, которую я не могу понять, хоть убей.

У меня есть массив строк, представляющих двоичные данные (после преобразования их из шестнадцатеричного ) Например: один индекс равен 1011, а другой - 11100. Я просматриваю массив и заполняю каждый индекс нулями, так что каждый индекс равен восьми байтам. Когда я пытаюсь преобразовать эти представления в фактические байты, я получаю сообщение об ошибке, когда пытаюсь разобрать '11111111'. Я получаю следующую ошибку:

java.lang.NumberFormatException: Value out of range. Value:"11111111" Radix:2

Вот фрагмент:

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);
}
7
задан Matthew Murdoch 4 May 2015 в 10:35
поделиться