언어/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