以下是递归代码:
// 2-16进制表示的位数
public String[] arr = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"A", "B", "C", "D", "E", "F"};
// 转换结果
public String conversion = "";
/**
* @param number 要转换的十进制数
* @param system 转换的进制位
*/
public void convert(int number, int system) {
conversion = arr[number % system] + conversion;
if(number/system==0) return;
convert(number/system, system);
}
再补充个利用 java 堆栈 先进后出 的特性实现(参数意义同上)
public static void convert(int number, int system) {
Stack<Integer> stack = new Stack<Integer>();
while (number > 0) {
stack.add(number % system);
number /= system;
}
while (!stack.empty()) {
System.out.print(stack.pop());
}
}