栈
public class MyStack {
private int[] array;
private static int size;
private static final int INITSIZE = 100;
//初始化栈
public MyStack(){
array = new int[INITSIZE];
}
//扩容
private void ensureCapacity(){
if(size == array.length){
Arrays.copyOf(array,array.length+(array.length>>1));
}
}
//判断栈空不空
public boolean isEmpty(){
return this.size == 0;
}
//压栈
public void push(int value){
ensureCapacity();
array[size] = value;
size++;
}
//出栈
public void pop(){
if(isEmpty()){
return;
}
size--;
}
//返回栈顶元素
public int peek(){
if(size == 0){
throw new EmptyStackException();
}
return array[size-1];
}
}
进制转换
public class HexTranslated {
//新建栈
private MyStack myStack = new MyStack();
//进制转换
public void go(int value,int mod){
//商
int conslut = value;
//余数
int remainder = 0;
while (conslut >= mod){
//取余
remainder = conslut % mod;
myStack.push(remainder);
conslut /= mod;
}
myStack.push(conslut);
}
public StringBuilder show(){
StringBuilder stringBuilder = new StringBuilder();
System.out.print("转换结果为: ");
while (!myStack.isEmpty()){
stringBuilder.append(myStack.peek()+" ");
myStack.pop();
}
return stringBuilder;
}
}
测试
public class Test {
public static void main(String[] args) {
HexTranslated hexTranslated = new HexTranslated();
hexTranslated.go(12,2);
System.out.println(hexTranslated.show());
hexTranslated.go(58,8);
System.out.println(hexTranslated.show());
}
}
测试结果