Тип данных для хранения 20-значного числа
У меня есть 20-значный номер, какой тип данных будет поддерживать для хранения этого номера? Я пытался долго, дважды, но я выхожу из диапазона.
Номер = 48565664968483514466
Затем я должен преобразовать это число в Base36 для создания штрих-кода.
4 ответа
BigInteger:
BigInteger
Класс выделяет столько памяти, сколько ему нужно для хранения всех битов данных, которые он запрашивает, а также предоставляет операции, аналогичные всем примитивным целочисленным операторам Java и всем соответствующим методам из java.lang.Math.
Объявите это как
BigInteger bi1 = new BigInteger("12345678900123");
Чтобы конвертировать ваш номер в базу 36:
BigInteger number = new BigInteger("48565664968483514466");
String numberInBase36 = number.toString(36);
System.out.println(numberInBase36);
когда я пытаюсь использовать новый BigInteger(число), я получаю литерал типа int вне диапазона
Синтаксис, который вы ищете
BigInteger n = new BigInteger("48565664968483514466");
с числовым литералом в виде String
, поскольку примитивные целочисленные литералы не могут содержать такое большое число.