gpt4 book ai didi

java - 如何将大数从一种基数转换为另一种基数

转载 作者:行者123 更新时间:2023-11-30 02:03:13 24 4
gpt4 key购买 nike

我正在尝试将 SQL 函数转换为 Groovy 以在 Elasticsearch 中使用,但我陷入了这个阶段。考虑到,我一生中从未接触过java或groovy,我做错了什么?

代码

public String convertFromBaseToBase(String str, int fromBase, int toBase) {
return Integer.toString(Integer.parseInt(str, fromBase), toBase);
}

output = convertFromBaseToBase("8f8f87878f8f8080", 16, 10);

System.out.print(output);

取自 Convert from one base to another in Java

错误

java.lang.NumberFormatException: For input string: "8f8f87878f8f8080"
at java_lang_Integer$parseInt.call(Unknown Source)
at Script1.convertFromBaseToBase(Script1.groovy:2)
at Script1.run(Script1.groovy:5)

最佳答案

8f8f87878f8f8080 是一个非常大的数字(10344635885392199808 为十进制),无法容纳在 Integer 中。

对于如此大的数字,您必须使用 BigInteger

public static String convertFromBaseToBase (String str, int fromBase, int toBase){
return (new BigInteger(str, fromBase)).toString(toBase);
}

工作代码 --> https://www.onlinegdb.com/B1mMEcKPX

BigInteger --> https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#toString(int)

关于java - 如何将大数从一种基数转换为另一种基数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52138898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com