Javaは進数間の変換を実現する

1515 ワード

@sourceNum:10進数のソース数
@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();
	}
}