char 타입 - 알파벳 기준

ASCII 인코딩을 사용 문자를 비트 상태와 대응

알파벳 대소문자와 숫자, 특수문자, 제어문자

문자의 개수가 128개 - 7비트 (맨 왼쪽 비트는 0으로 설정)

 

char 두개를 이어서 사용 - 한글이나 한자 등 (유니코드 체계 탄생)

 

유니코드 - 모든 문자들에게 코드를 부여(순수하게 번호)

실제 컴퓨터의 타입으로는 UTF(Unicode Transformation Format)-N으로 대응 (UTF-8, UTF-16, UTF-32)

 

UTF-N

정확한 의미는 N 비트의 배수로 한 문자를 표현

UTF-8에서 영어는 ASCII와 동일하게 1바이트만으로 한글의 경우 한 글자가 3바이트를 차지하게 된다.

UTF-16의 경우 알파벳이나 한글 모두 한글자가 2바이트, 대응할 수 없는 문자의 경우 4바이트로 표시

UTF-32는 모든 문자에 대해 4바이트 너무 큰 용량을 차지하기 때문에 많이 사용X

UTF-8과 UTF-16은 문화권에 대해 선호도 달라짐

알파벳은 UTF-8, 우리나라의 경우 UTF-8에서 3바이트 UTF-16에 비해 효율이 좋지X

UTF-8은 글자의 수를 셀 경우 각 글자마다 바이트 크기가 다르기 때문에 많은 연산 요구

UTF-16은 글자 하나가 2바이트 공간 절약, 글자 수를 셀 경우에도 고속으로 처리 (한글에서만)

UTF-16 / UTF-32 지원하는 데이터 타입 (wchar_t)

VC++의 경우 UTF-16 / UTF-32에 대응 wchar_t는 2바이트 UTF-16을 지원(UCS-2를 지원, UTF-16을 포함)

GCC의 경우 wchar_t는 4바이트 UTF-32를 지원. 플랫폼간 문자 타입 통일X

Wide Character를 표현하기 위해 L매크로 사용할 수 있음. 'A' char타입 L'A' wchar_t 타입

유니코드에서 완성형 한글의 코드 범위는 0xAC00 ~ 0xD7A3

 

 

 

 

'C++ > Fundamental' 카테고리의 다른 글

참조 타입  (0) 2022.02.07
날짜 시간  (0) 2022.02.02
문자열  (0) 2022.01.28
부동소수점  (0) 2022.01.18
보수  (0) 2022.01.11

+ Recent posts