2017년 1월 23일 월요일

[JAVA]Hexa to bin(16진수 정수 -> 2진수 정수)


16진수 문자열을 2진수 문자열로 변환하는 프로그램 
 
1] 문제
 
16진수의 문자열을 2진수의 문자열로 변환하는 프로그램을 작성한다.
ex]
16진수 문자열을 입력하시오 :
1ac
“1ac”에 대한 이진수는
0001
1010
1011
1100
 
 
 
2] 알고리즘 및 설명
 
Step 1 : String 배열 hexa16진수 ‘0’~‘f’에 해당하는 이진수 문자열 값을 정의한다.
Step 2 : String bin16진수 문자열을 입력 받는다.
Step 3 : bin문자열의 charAt(index)메소드를 통하여 ‘0’~‘f’에 해당하는 이진수 문자열 값을 Switch을 이용하여 출력한다.
 
 
 
3] 프로그램 코드
import java.util.*;

public class Hexa {
public static void main(String args[]) {
String[] hexa =
               { "0000", "0001", "0010", "0011", "0100",
                 "0101", "0110", "0111", "1000", "1001", "1010",
 "1011", "1100", "1101", "1110", "1111" };

                String bin;
System.out.println("16진수 문자열을 입력하시오 : ");
bin = new Scanner(System.in).next();
System.out.println("bin+에 대한 이진수는 ");

for (int i = 0; i < bin.length(); i++) {
switch (bin.charAt(i)) {
case '0':
System.out.println(hexa[0]);
break;
case '1':
System.out.println(hexa[1]);
break;
case '2':
System.out.println(hexa[2]);
break;
case '3':
System.out.println(hexa[3]);
break;
case '4':
System.out.println(hexa[4]);
break;
case '5':
System.out.println(hexa[5]);
break;
case '6':
System.out.println(hexa[6]);
break;
case '7':
System.out.println(hexa[7]);
break;
case '8':
System.out.println(hexa[8]);
break;
case '9':
System.out.println(hexa[9]);
break;
case 'a':
System.out.println(hexa[10]);
break;
case 'b':
System.out.println(hexa[11]);
break;
case 'c':
System.out.println(hexa[12]);
break;
case 'd':
System.out.println(hexa[13]);
break;
case 'e':
System.out.println(hexa[14]);
break;
case 'f':
System.out.println(hexa[15]);
break;
default:
System.out.println("wrong value");
}
}
}
}

 
4] 실행 결과













댓글 없음:

댓글 쓰기