Проблема с сохранением двоичного формата в список целых - PullRequest
0 голосов
/ 01 мая 2020

У меня проблема с сохранением двоичного формата в список целых чисел в Java. У меня есть кусок кода:

while((line = bfr.readLine()) != null){
            //System.out.println(line);
            Integer x = Integer.valueOf(line);
            msg.add(x);
            decoding(msgc);
            msg.clear();
        }

После этого у меня появляется ошибка:

Exception in thread "main" java.lang.NumberFormatException: For input string: "0100001111100111"

Все мои действия находятся в списке Intiger, поэтому я должен сохранить их в Integer. Как я могу решить эту проблему? Я перепробовал все. Спасибо, и хорошего дня!

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Вам поможет следующий фрагмент кода:

String bitString = "0100001111100111";
System.out.println(bitString + " -> " + Integer.parseInt(bitString, 2));

Он выдаст следующий вывод:

0100001111100111 -> 17383
0 голосов
/ 01 мая 2020

Вы, вероятно, предполагаете, что 0100001111100111 будет прочитан Integer.valueOf как двоичное значение, но это не так, и он считает, что это десятичное значение, проблема в том, что число слишком велико для целого числа, поэтому у вас есть исключение.

При использовании Long.valueOf у вас не будет исключения, но нет ожидаемого результата

Один из способов - выполнить преобразование самостоятельно, конечно, при условии, что количество цифр не слишком большой даже в двоичном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...