【发布时间】:2015-02-19 22:04:52
【问题描述】:
作为我的 java CSC 类的编程作业,我编写了以下代码来将数字及其基数转换为十进制数,然后再转换为所需的数字和基数。
public static int baseten(int number,int basein){
int power = 0;
int baseten = 0;
while (number > 0) {
int finalDigit = number % 10;
int product = finalDigit*(int)Math.pow(basein, power);
baseten += product;
number = number / 10;
power++;
}
return(baseten);
}
public static String convert (int decimal, int baseout){
String result = "";
while (decimal > 0){
//if baseout
int remainder = decimal % baseout;
decimal = decimal / baseout;
result = remainder + result;
}
return(result);
}
问题是如何在这段代码中将数字转换为大于 10 的基数?我假设可能是 char[],但我现在对数组不太擅长,无法想象那会是什么样子。我认为我不能使用 toString 或 parseInt。任何帮助,将不胜感激。提前致谢。
【问题讨论】:
-
您可以使用字符串作为返回值,通过 ASCII 表计算字符串中每个字符的字符(例如添加到 0x30)
-
另外——你的“baseten”方法很奇怪。 Java 中的 int 并没有真正的“基础”;您的方法可能应该声明为
public static int baseten(String number, int basein)。