본문 바로가기
JAVA

[Java]16진수를 2진수로 변환 hex->binary

by 고체물리학 2021. 6. 11.

16진수 문자열을 2진수 문자열로 바꾸는 코드를 구현하였다
먼저 16진수 문자열과 2진수 문자열을 배열로 저장한다

static char[] hexarray={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','A', 'B', 'C', 'D', 'E', 'F'}; 
static String[] hextobin={"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", 
"1010", "1011", "1100", "1101", "1110", "1111", "1010", "1011", "1100", "1101", "1110", "1111" }; 

대소문자 상관없이 변환하고 싶어서 두 가지 경우 모두 추가했다

변환하고 싶은 문자열의 데이터를 한 문자씩(16진수) 쪼개서 2진수로 변환하는 함수를 작성한다

 public static String change(String data){ 
 	for(int i=0;i<data.length();i++){ // 변환하고자하는 문자열의 처음부터 마지막까지검사 
    	  for (int j=0;j<hexarray.length;j++) { 
        	if(data.charAt(i)==hexarray[j]) {
        		b=hextobin[j]; //16진수 배열 위치에 해당하는 2진수 값을 문자열b에 저장 
        		sum+=b; //변환된 2진수를 sum문자열에 합친다 
                }
           } 
       } return sum; //변환된 모든 문자열 출력 
  }



[전체코드]

public class Ex1 {

    public static void main(String[] args) {
    	String b = "abcABC";
    	System.out.print("결과: "+change(b));
    }
    
	static char[] hexarray={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','A', 'B', 'C', 'D', 'E', 'F'};
	static String[] hextobin={"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100",
								"1101", "1110", "1111", "1010", "1011", "1100", "1101", "1110", "1111" }; 
	static String b;
	static String sum="";
	public static String change(String data){ 
		for(int i=0;i<data.length();i++){
			for (int j=0;j<hexarray.length;j++) {
				if(data.charAt(i)==hexarray[j]) {
					b=hextobin[j];
					sum+=b;
				}
			}
		}
		return sum; 
		
	}

}



[출력 결과]

 

반응형

댓글