#java #binary
Вопрос:
Я пытаюсь преобразовать шестнадцатеричное число в десятичное и в двоичное, но получаю ту же ошибку для данного шестнадцатеричного "001F012900F3ADA3"
числа, но одно и то же шестнадцатеричное число преобразуется в десятичное и в двоичное с помощью любого онлайн-конвертера.
Integer.parseInt("001F012900F3ADA3",16); // to decimal conversion Integer.toBinaryString(Integer.parseInt("001F012900F3ADA3", 16)); // to binary conversion
когда я использую часть этого шестнадцатеричного кода, как Integer.parseInt("00F3ADA3",16);
это работает нормально, без исключений. есть ли какой-то тип максимальной шестнадцатеричной длины, разрешенной для преобразования, или я использую что-то не так, пожалуйста, исправьте меня.
Ответ №1:
Значение, которое вы пытаетесь проанализировать, слишком велико, чтобы поместиться в целое число. Чтобы проанализировать это должным образом, вам придется анализировать это так долго.
Если вы замените его на ниже, то он будет работать.
Long.toBinaryString(Long.parseLong("001F012900F3ADA3", 16));
Ответ №2:
Максимальное значение int равно 2147483647
, значение : 001F012900F3ADA3
преобразовать в двоичное число равно 8726999899286947
.