본문 바로가기
Coding Note/Java

Java 4-3) 진법 변환 프로그램 만들기 / 10진수, 2진수, 8진수, 16진수

by 푸린이 2021. 12. 11.
import java.util.Scanner;

public class MainClass {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {		// 출력 후 다시 입력할 수 있게 함
						
			System.out.println("Menu >>>");
			System.out.println("1. 10진수 → 2진수로 변환");
			System.out.println("2. 10진수 → 8진수로 변환");
			System.out.println("3. 10진수 → 16진수로 변환");
			System.out.println("4. 2진수 → 10진수로 변환");
			System.out.println("5. 8진수 → 10진수로 변환");
			System.out.println("6. 16진수 → 10진수로 변환");
			System.out.print("원하시는 처리 번호를 입력해주십시오 >> ");
			int work = sc.nextInt();
			
			System.out.print("변환하고 싶은 숫자를 입력해주십시오 >> ");
			String numStr = sc.next();
			
			// 변수선언
			int num10;
			String num2, num8, num16;
			switch (work) {
				case 1:
					num10 = Integer.parseInt(numStr);		// case1~3까지는 String으로 받은 숫자를 10진수로 바꾼 후
					num2 = Integer.toBinaryString(num10);	// 2진수로 변경
					System.out.println("10진수 " + numStr + "의 2진수는 " + num2 + "입니다.");
					break;
				case 2:
					num10 = Integer.parseInt(numStr);
					num8 = Integer.toOctalString(num10);					
					System.out.println("10진수 " + numStr + "의 8진수는 " + num8 + "입니다.");
					break;
				case 3:
					num10 = Integer.parseInt(numStr);
					num16 = Integer.toHexString(num10);					
					System.out.println("10진수 " + numStr + "의 16진수는 " + num16 + "입니다.");
					break;
				case 4:
					num10 = Integer.parseInt(numStr, 2);
					System.out.println("2진수 " + numStr + "의 10진수는 " + num10 + "입니다.");		
					break;
				case 5:
					num10 = Integer.parseInt(numStr, 8);
					System.out.println("8진수 " + numStr + "의 10진수는 " + num10 + "입니다.");
					break;
				case 6:
					num10 = Integer.parseInt(numStr, 16);
					System.out.println("16진수 " + numStr + "의 10진수는 " + num10 + "입니다.");
					break;
			}
			
			System.out.println();
			
								
		}	

	}

}

- 변환할 숫자를 string으로 받기 때문에 10진수를 바꿀 때는 입력받은 수를 int(10진수)로 바꿔서 다시 다른 진법으로 변환해야함

- 입력받은 처리번호에 맞는 case가 작동됨

- while문 (무한루프)을 써서 출력이 완료되면 다시 입력받음

댓글