NumberFormatExceprion для двоичной строки - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь получить int из строки "11010001110011000000000111111110" с кодом:

int n = Integer.parseInt("11010001110011000000000111111110", 2);

, но получаю ошибку:

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

1 Ответ

3 голосов
/ 17 марта 2020

Это просто потому, что значение, представленное строкой с двоичным содержимым, слишком велико для типа данных int . Вам нужно проанализировать тип данных long . Двоичная строка представляет значение 3519807998 . Максимальное целочисленное значение (Integer.MAX_VALUE): 2147483647 . Попробуйте это:

String binaryString = "11010001110011000000000111111110";
long n = Long.parseLong(binaryString, 2);

Или вот так:

String binaryString = "11010001110011000000000111111110";
long lng = new BigInteger(binaryString, 2).longValue();
System.out.println(lng); 
...