gpt4 book ai didi

java - 如何以最简单的方式将不同的数字系统转换为基数十

转载 作者:行者123 更新时间:2023-12-02 06:04:42 24 4
gpt4 key购买 nike

我在网站上搜索过这个问题,但不明白大多数发布的解决方案。 我的问题是;我有一个方法:

public static int convertToDecimal(int number, int base)

它将接收一个数字和基数,然后将它们相乘:

(1023, 4) passed to the method will be (1 * Math.pow(4,3)) + (0* Math.pow(4,2))+(2* Math.pow(4,1))+(3* Math.pow(4,0)) will return 75.

拜托,我对java很陌生,还不了解执行此操作的复杂方法。目标是了解如何进行迭代。谢谢

最佳答案

整数值本身(例如 int)实际上没有基数。这只是一个数字。

基础对于文本表示最为重要。 (它们在 float 中也很重要,因为它决定了 float 的类型,但我们暂时将其放在一边。)因此,以下内容是有意义的:

public static String convertToDecimal(String input, int base)

或者甚至:

public static int convertFromBase(String input, int base)

但是你现在的签名没有多大意义。 1023 与“1023”相同...它只是一个数字。

幸运的是,Java 内置了第二个签名,如 Integer.parseInt(String, int) ,所以你不需要自己做。如果您确实想自己做,我会这样写:

public static int convertFromBase(String input, int base) {
int multiplier = 1;
int result = 0;
for (int index = input.length() - 1; index >= 0; index--) {
// This will handle hex for you. TODO: Validation!
int digitValue = Character.digit(input.charAt(index), base);
result += digitValue * multiplier;
multiplier *= base;
}
return result;
}

关于java - 如何以最简单的方式将不同的数字系统转换为基数十,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22398084/

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