栈(stack)实现了Collection接口。
如果想要用栈的话,首先要先明白栈是先入后出的一种数据类型。
通过对数进行相应进制的取余操作可以得到我们要转换的进制数。
当需要转换成16进制(或十进制以上的数,我们需要把大于10的数转换成A-F等)
当余数等于10时,我们需要转换成'A',当等于11时 我们需要转换成'B'
怎么实现呢?
ascll码可以解决这个问题。
当等于10时我们加上55正好可以得到ascll码中的’A‘,依次类推。
代码如下:
public class Work_10th {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你想要转化你的进制数:");
int m = scanner.nextInt();
System.out.println("请输入你想要转化成为的进制:");
int n = scanner.nextInt();
Stack stack = new Stack();
while (m != 0) {
if (m % n >= 10) {
stack.push((char)(m%n+55));
} else
stack.push(m % n);
m /= n;
}
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}