Main/Algorithm

[알고리즘 초급] 10진수를 2진수, 8진수, 10진수, 16진수로 변환

키키수수 2020. 1. 6. 17:55
package zlzltntn;

public class Test {
	// 2 ~ 16 진수
	static String conver(int x, int i) {
		
		String result = "";
		String hex = "0123456789ABCDEF";
		
		do {
			int div = x % i; 
			x /= i;
			result = hex.charAt(div)+result;
		}while(x != 0);
		
		String pre = (i == 16)?  "0x": ( (i == 8)? "0" : null ) ;
		
		if(pre != null) result = pre + result;
		
		return result;
	}
	
	static String conver2(int x, int i) {
    
		int temp = x;
		String result = "";
		String hex = "0123456789ABCDEF";
		int div = 0;
		System.out.println();
        
		do {
			System.out.printf("%d |",i);
			System.out.printf("\t%s ", x);
			System.out.printf("\t%s\n ", result.equals("")? "":"···"+ div );
			System.out.println(" +------------");
			div = x % i;
			x /= i;
			result = hex.charAt(div) + result;
			
		}while(x != 0);
		
		System.out.printf("\t%s ", x);
		System.out.printf("\t%s ", "···"+div);
		System.out.println();
		return result;
	}
	public static void main(String[] args) {
		
		String str2 = conver2(59, 2);
		System.out.println();
		System.out.println("result :  " + str2);
	}
}