언어/JAVA

Java char 형변환

EpicArts 2020. 6. 27. 23:59
728x90

Java 공부를 하다가 예제에서 '가'를 넣었는데 int로 형 변환했을 때 값이 신기해서 이것저것 찾아보았습니다.

java에서는 char를 2byte의 공간을 사용하여 유니코드 값을 참조한다고 합니다.

 

 

전체 소스코드

public class PromotionTest {
    public static void main(String args[]){
        byte b1 = 127;
        char c1 = '가';
        int i1;
        double d1;
        System.out.println("자동 형변환의 결과");

        i1 = b1;
        System.out.println("i1(int) = b1(byte) 형변환: " + i1);

        i1 = c1;
        System.out.println("i1(int) = c1(char) 형변환: " + i1);

        d1 = i1;
        System.out.println("d1(double) = i1(int) 형변환: " + d1);

        char c2 = 44032;
        System.out.println("44032 를 c(char) 형변환: " + c2);

        char c3 = 44033;
        System.out.println("44033 를 c(char) 형변환: " + c3);

        char c4 = 44034;
        System.out.println("44034 를 c(char) 형변환: " + c4);

        char c5 = 65;
        System.out.println("44032 를 c(char) 형변환: " + c5);

        char c6 = 29616;
        System.out.println("29616 를 c(char) 형변환: " + c6);

        char c7 = 65535;
        System.out.println("65535 를 c(char) 형변환: " + c7);

        char c8 = 0;
        System.out.println("0 를 c(char) 형변환: " + c8);

        char c9 = '\u205C';
        System.out.println("'\\u205C' 를 c(char) 형변환: " + c9);
    }
}

 

 

 

 

예제에서 char에 '가'를 int로 형변환을 했을 때 값이 44032이나 왔습니다.

그래서 44032를 16진수로 변환해봤습니다.

ac00가 나왔습니다.

 

https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_A000~AFFF

 

위키백과의 유니코드 표에서 AC00를 보면 '가'가 존재하는 것을 볼 수 있었습니다.

 

그래서 몇 개 더 시도해봤습니다.

 

char c9 = '\u205C';

 

 

 

나중에 필요할 때 한글 인코딩이 필요할때 조금 더 찾아봐야겠습니다.

 

728x90