[英]How to convert decimal to a higher base and vice versa
作为我的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。 任何帮助,将不胜感激。 提前致谢。
你快到了 您可以做的是插入一个if / else语句,以确定余数是否大于或等于10,然后采取相应措施。 如果不是,请立即执行您的操作。 如果是,则需要在字符串中添加一个字符。 该字符必须为(remainder-10)+ 65,因为65在ascii表上是大写的A,并且您需要知道十位数以上是几位数并将其添加到A。这可以简化为简单地添加55,但是我认为可读性较差。 然后,只需将该char添加到字符串中,而不是添加int。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.