Language/C, C++, C#
[C] 아스키코드(ASCII)와 유니코드(Unicode)란?
byunghyun23
2020. 6. 9. 01:00
-
아스키코드 (ASCII)
-
1960년 미국에서 정의한 알파벳 표준 부호 체계
-
컴퓨터의 기본 저장 단위인 1byte(=8bit)에서 통신을 위한 1bit(parity bit)를 제외하여 최대 7bit 체계 구성
-
-
유니코드 (Unicode)
-
전 세계의 모든 문자를 일관되게 표현하기 위한 국제 부호 체계
-
16bit 체계 구성 (아주 희귀한 문자일 경우 최대 21bit까지 사용)
-
영문 또는 한글을 읽어 크기를 파악해보자.
소스 코드는 아래와 같다.
#include <stdio.h>
int main() {
int dec;
while (1) {
printf("Please enter a value : ");
dec = getchar();
if (dec <= 127) {
printf("ASCII : %d\n", dec);
}
else {
printf("Unicode : %d, ", dec);
dec = getchar();
printf("%d\n", dec);
}
while ((dec = getchar()) != '\n') {
printf("Remaining buffer value : %d\n", dec);
}
printf("\n");
}
}
getchar() 함수를 사용하여 버퍼에서 1byte값을 읽어 dec에 저장한다.
dec 값이 아스키코드 값 범위안에 포함된다면 값을 출력한다.
범위를 벗어날 경우 유니코드로 인식하여 1byte를 추가로 읽어 출력한다.
한글을 사용하기 위해서는 2byte 크기의 자료형이 필요하다는 것을 다음 결과를 통해 알 수 있다.