9

我有一个 20 位数字,哪种数据类型支持存储这个数字?我已经尝试了很长时间,但我已经超出了范围。

号码 = 48565664968483514466

然后我必须将此数字转换为 Base36 以生成条形码。

4

4 回答 4

15
BigInteger:

该类BigInteger分配尽可能多的内存来保存它被要求保存的所有数据位,并且还提供类似于 Java 的所有原始整数运算符和所有相关方法的操作java.lang.Math.

将其声明为

BigInteger bi1 =  new BigInteger("12345678900123");
于 2014-09-15T15:41:29.880 回答
4

以 36 为基数转换您的号码:

BigInteger number = new BigInteger("48565664968483514466");
String numberInBase36 = number.toString(36);
System.out.println(numberInBase36);
于 2014-09-15T15:57:10.097 回答
2

当我尝试使用 new BigInteger(number) 时,我得到 int 类型的文字超出范围

您正在寻找的语法是

BigInteger n = new BigInteger("48565664968483514466");

将数字文字作为 a String,因为原始整数文字不能容纳这么大的数字。

于 2014-09-15T15:46:36.357 回答
0
BigInteger i = new BigInteger("48565664968483514466");
于 2014-09-15T15:45:42.897 回答