package homework;
import javax.swing.*;
import homework.SeqStack;
public class zhuanhuan {
public void zhuanhuanF(int num, int r) {
if (r == 2 || r == 8) {
SeqStack sstack = new SeqStack();
int n;
boolean isFinish = false;
while (!isFinish) {
if (num >= r){
n = num % r;
num = num / r;
sstack.push(n);
} else {
sstack.push(num);
isFinish = true;
}
}
JOptionPane.showMessageDialog(null, sstack.toString());
} else if (r == 16) {
SeqStack<String> sstack = new SeqStack<String>();
int n;
boolean isFinish = false;
String str = "";
while (!isFinish) {
if (num >= r) {
n = num % r;
num = num / r;
if (n < 10) {
str = String.valueOf(n);
sstack.push(str);
} else {
switch (n) {
case 10:
sstack.push("A");
break;
case 11:
sstack.push("B");
break;
case 12:
sstack.push("C");
break;
case 13:
sstack.push("D");
break;
case 14:
sstack.push("E");
break;
case 15:
sstack.push("F");
break;
}
}
} else {
if (num < 10) {
str = String.valueOf(num);
sstack.push(str);
} else {
switch (num) {
case 10:
sstack.push("A");
break;
case 11:
sstack.push("B");
break;
case 12:
sstack.push("C");
break;
case 13:
sstack.push("D");
break;
case 14:
sstack.push("E");
break;
case 15:
sstack.push("F");
break;
}
}
isFinish = true;
}
}
JOptionPane.showMessageDialog(null, sstack.toString());
} else {
JOptionPane.showMessageDialog(null, "您输入有误"+"\n"+"请查证后重新输入!");
String str3 = "";
String str4 = "";
int num2 = 0;
int r2 = 0;
str3= JOptionPane.showInputDialog("请再次输入一个十进制数");
str4 = JOptionPane.showInputDialog("请输入一个您要转换的进制数"+"\n"+"在二,八,十六进制中选择");
num2 = Integer.parseInt(str3);
r2 = Integer.parseInt(str4);
zhuanhuan zh = new zhuanhuan();
zh.zhuanhuanF(num2, r2);
}
}
public static void main(String args[]) {
String str1 = "";
String str2 = "";
int num = 0;
int r = 0;
str1 = JOptionPane.showInputDialog("请输入一个十进制数");
str2 = JOptionPane.showInputDialog("请输入一个您要转换的进制数"+"\n"+"在二,八,十六进制中选择");
num = Integer.parseInt(str1);
r = Integer.parseInt(str2);
zhuanhuan zh = new zhuanhuan();
zh.zhuanhuanF(num, r);
}
}