Тип данных для хранения 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, поскольку примитивные целочисленные литералы не могут содержать такое большое число.

BigInteger i = new BigInteger("48565664968483514466");
Другие вопросы по тегам