问题:10进制数21转换成5进制
思路:除5取余法,逆序排列
代码实现(10进制转换成任意N进制)
public class Test {
private static char[] array = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
.toCharArray();
private static String numStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static String _10_to_N(long number, int N) {
// Long rest = number;
Stack<Character> stack = new Stack<Character>();
StringBuilder result = new StringBuilder();
while (number != 0) {
stack.push(array[new Long((number % N)).intValue()]);
number = number / N;
}
for (; !stack.isEmpty();) {
result.append(stack.pop());
}
return result.length() == 0 ? "0":result.toString();
}