java利用递归实现进制转换
时间: 2023-12-05 08:39:43 浏览: 98
以下是Java利用递归实现进制转换的代码和解释:
```java
public class DecimalToBase {
public static void main(String[] args) {
int decimal = 123;
int base = 16;
String result = decimalToBase(decimal, base);
System.out.println(decimal + " in base " + base + " is " + result);
}
public static String decimalToBase(int decimal, int base) {
if (decimal == 0) {
return "0";
} else {
int remainder = decimal % base;
String result = "";
if (remainder < 10) {
result = Integer.toString(remainder);
} else {
result = Character.toString((char) ('A' + remainder - 10));
}
return decimalToBase(decimal / base, base) + result;
}
}
}
```
解释:
- `decimalToBase`方法是递归函数,用于将十进制数`decimal`转换为`base`进制数。
- 如果`decimal`为0,则返回字符串"0"。
- 否则,计算`decimal`除以`base`的余数`remainder`,并将其转换为字符串`result`。
- 如果`remainder`小于10,则将其转换为字符串。
- 否则,将其转换为'A'到'F'中的一个字符。
- 最后,将`decimal`除以`base`的商作为新的`decimal`,并将`result`添加到递归调用的结果中。
阅读全文