Javaは進数間の変換を実現する
1515 ワード
@sourceNum:10進数のソース数
@baseNum:目的進数
呼び出しコードは次のとおりです.
@baseNum:目的進数
package com.wjy.algorithm;
import java.util.Stack;
public class SystemTransform {
private int sourceNum;
private int baseNum;
public SystemTransform(int sourceNum,int baseNum){
this.sourceNum=sourceNum;
this.baseNum=baseNum;
}
public void transform(){
if(sourceNum<0 || baseNum<0)
{
throw new IllegalArgumentException("the parameter is valid.");
}
Stack<Integer> stack=new Stack<Integer>();
while(sourceNum!=0){
stack.push(Integer.valueOf((Integer)(sourceNum%baseNum)));
sourceNum/=baseNum;
}
// System.err.println(stack.size());
if(stack.empty()){
System.out.println("result is 0.");
}else{
int len=stack.size();
for(int i=0;i<len;i++){ // for(int i=0;i<stack.size();i++) ???
System.out.print(stack.pop());
// System.err.println("i is:"+i);
// System.err.println("size is:"+stack.size());
}
System.out.println("
");
}
}
}
呼び出しコードは次のとおりです.
package com.wjy.algorithm;
public class MainTest {
public static void main(String args[]){
SystemTransform systemTransform=new SystemTransform(1348, 8);
systemTransform.transform();
}
}