作为我的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。任何帮助,将不胜感激。提前谢谢。
答案 0 :(得分:1)
你快到了。您可以做的是插入if / else语句以确定余数是否大于或等于10并相应地采取行动。如果不是,请立即执行您正在执行的操作。如果是,则需要在字符串中添加char。这个字符必须是(余数-10)+ 65,因为65是ascii表中的大写字母A,你需要知道十个余数之上有多少位数并将其添加到A.这可以简化为简单地添加55,但是在我看来,可读性较差。然后,只需将该char添加到字符串中,而不是添加int。