在Java中,如何将基数36转换为十进制数?

在Java中,如何将基数36转换为十进制数?,java,math,decimal,Java,Math,Decimal,给定基数为36的YPAYPA,Java中是否有库函数可以将其转换为十进制数?下面返回数字的十进制字符串表示形式 Long.valueOf("YPAYPA", 36).toString(); 这听起来像是一个家庭作业问题。如果不是,那么我道歉,但现在我只会发布一些信息,帮助你找到正确的答案 由于这是一个以36为基数的数字,我将假设值为[0-9][a-Z],字母的值为a=10,B=11,等等。解决这个问题的最简单方法是通过幂。最右边的位置(在你的例子中是A)是10*(36^0),这将等于10。P为

给定基数为36的YPAYPA,Java中是否有库函数可以将其转换为十进制数?

下面返回数字的十进制字符串表示形式

Long.valueOf("YPAYPA", 36).toString();

这听起来像是一个家庭作业问题。如果不是,那么我道歉,但现在我只会发布一些信息,帮助你找到正确的答案

由于这是一个以36为基数的数字,我将假设值为[0-9][a-Z],字母的值为a=10,B=11,等等。解决这个问题的最简单方法是通过幂。最右边的位置(在你的例子中是A)是10*(36^0),这将等于10。P为(15*36^1)


从本质上讲,它是数字的值,乘以基数提升到0的结果。我们的十进制系统的工作方式完全相同(10^0、10^1等)。

即使在大的数字上也能工作

new BigInteger("YPAYPA", 36).toString();

这将转换为内部Java
long
——要使其成为十进制数,您仍然需要调用
toString()
…为什么需要将其转换为字符串?嗯,在某种程度上,您需要表示“十进制”;这是一个符号,是一个想法的符号表示。将其编辑为使用“String.valueOf(long)”。不能对原语long.Edited调用toString()以使用
long.valueOf(String,int)
获取
long
而不是
long
。我想这就是我最初的意图这与。。。虽然不一样,谢谢。如果该值超过Long.MAX\u VAL,则这是绝对必须的