用于存储20位数字的数据类型

时间:2014-09-15 15:38:51

标签: java math numbers type-conversion base36

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

编号= 48565664968483514466

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

4 个答案:

答案 0 :(得分:13)

BigInteger:

BigInteger类分配所需的内存,以保存要求保存的所有数据位,并为所有Java的原始整数运算符和{{1的所有相关方法提供操作类似物}}

将其声明为

java.lang.Math.

答案 1 :(得分:2)

要转换基数为36的数字:

BigInteger number = new BigInteger("48565664968483514466");
String numberInBase36 = number.toString(36);
System.out.println(numberInBase36);

答案 2 :(得分:1)

  

当我尝试使用新的BigInteger(数字)时,我得到int类型的字面值超出范围

您正在寻找的语法是

BigInteger n = new BigInteger("48565664968483514466");

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

答案 3 :(得分:0)

BigInteger i = new BigInteger("48565664968483514466");