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문 (무한루프)을 써서 출력이 완료되면 다시 입력받음
댓글