본문 바로가기
Algorithm

[Algorithm] 10진수를 2, 8, 16 진수로 변환하기 (Convert decimal to binary, octal, and hexadecimal)

by 노력남자 2019. 11. 4.
반응형

 

문제

 

10진수를 2, 8, 16 진수로 변환하시오. (n <= 16)

 

풀이

 

2, 8, 16 진수로 변환하기 위해서 간단히 진수 변환 방법을 짚고 넘어가겠습니다.

 

10진수를 2진수로 변환하는 방법을 예로 들겠습니다.

 

 

변환하려는 값을 2로 나누어 나머지로 위와 같이 구하는 작업을 반복해서 몫이 0이 됐을 때 나머지를 역순으로 표시하면 끝입니다.

 

만약, 나머지가 10 이상일 경우 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F 로 표시합니다.

 

코드

 

public class ChangeNumber {
	public static void main(String[] args) {		
		System.out.println("10진수 125를 2진수로  : " + changeNumber(125, 2));
		System.out.println("10진수 125를 8진수로  : " + changeNumber(125, 8));
		System.out.println("10진수 125를 16진수로  : " + changeNumber(125, 16));
	}
	
	public static String changeNumber(int num, int i) {
		String answer = "";
		int remainder = 0;
		
		while(num != 0) {
			remainder = num%i;
			
			if(num%i < 10) {
				answer = remainder + answer;
			} else {
				//A=65, B=66, C=67, D=68, E=69, F=70
				answer = (char)(remainder + 55) + answer; 
			}
			
			num /= i;
		}
		
		return answer;
	}
}

 

결과

 

10진수 125를 2진수로  : 1111101
10진수 125를 8진수로  : 175
10진수 125를 16진수로  : 7D
반응형

댓글