본문 바로가기

코드업(CodeUp)/기초 100제

[코드업/자바] 기초 100제 - 16진 정수 1개 입력받아 8진수로 출력하기

1035 : [기초-출력변환] 16진 정수 1개 입력받아 8진수로 출력하기(설명)

 

1. 16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자.

참고
%x(영문자 소문자) 나 %X(영문자 대문자)로 입력 받으면
16진수로 인식시켜 저장시킬 수 있다. %o로 출력하면 8진수로 출력된다.

C언어에서 소스 코드 작성시 0으로 시작하는 수는 8진수로 인식된다.
또한 소스코드 내에서 //로 시작하면 1줄 설명을 넣을 수 있다.
여러 줄을 설명(주석) 을 넣을 경우 /* 와 */ 사이에 작성하면 된다.

예시
int n;
scanf("%x", &n); //소문자로 16진수 입력
printf("%o", n);

 

2. 16진 정수 1개가 입력된다.
(단, 16진수는 영문 소문자로 입력된다.)

3. 8진수로 바꾸어 출력한다.

ex)

입력 : f

출력 : 17


저번 시간에 이어서 10진수를 다른 진수 숫자로 바꾸는 걸 알아야한다.

자바에서는 다른 진수로 받는 방법이 없으므로 String 타입으로 받아서 변환해준다.

import java.util.*;

public class Exercise {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		int num = Integer.valueOf(str, 16);
		
		System.out.printf("%o", num);
	}
}
	

받아준 String을 Integer클래스에 valueOf() 메소드를 이용하여 16진수로 바꿔준다.

그리고 printf()를 이용하여 8진수를 출력한다.

728x90
반응형