Разбор больших шестнадцатеричных чисел в Java - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь разобрать в int a String, который является шестнадцатеричным числом в моем коде (например, FF00FF00), используя Integer.parseInt(String string, int radix), но всегда получаю NumberFormatException.Если я проанализирую число без последних двух чисел (FF00FF), оно будет работать хорошо.

Существует ли какой-либо метод для анализа таких больших чисел в Java?

Ответы [ 2 ]

14 голосов
/ 12 августа 2011

Если Integer слишком мало, используйте Long:

Long.parseLong(string, 16)

Если Long все еще слишком мало, используйте BigInteger:

new BigInteger(string, 16)
2 голосов
/ 12 августа 2011

Я бы использовал Long.parseLong(x, 16) BigInteger является избыточным для 32-битного значения.

Если вы ожидаете, что это значение будет int, вы можете привести результат.

int x = (int) Long.parseLong("FF00FF00", 16);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...