소개
안녕하세요 아임코딩입니다.
이번에는 c언어에서 문자 자료형을 저장하는 방식인 아스키 코드에 대해서 알아보겠습니다.
아스키 코드란?
아스키 코드는 American Standard Code for Information Interchange 의 줄임말로 미국정보교환표준부호를 뜻합니다.
아스키 코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩 방식입니다.
c언어에서는 아스키 코드를 이용하여 문자 인코딩을 합니다.
인코딩이란?
인코딩은 영어로는 encoding 즉, 코드화나 암호화를 뜻합니다.아스키 코드를 예로 들면 특정 문자 -> 특정 숫자 로 1:1 연결하여 코드화하는 것을 뜻합니다.예를 들어 소문자 a는 숫자 97, b는 숫자 98, c는 숫자 99 처럼 문자와 숫자를 1:1로 지정하는 것입니다.
아스키 코드표(ASCII Table)
출처 : https://cafe.daum.net/flowlife
위의 표처럼 아스키 코드는 특정 문자들을 숫자에 대응합니다.
예를 들어, 소문자 a는 숫자 97, b는 숫자 98, c는 숫자 99 처럼 문자와 숫자를 1:1로 지정합니다.
char 자료형과 아스키 코드
c언어에서는 문자를 저장할 때 char 자료형을 사용합니다.
하지만 실제 c언어 내부적으로는 char 자료형을 저장할 때에는 정수로 저장합니다.
char c = 'a'
라는 코드를 작성했다면 char 형 변수 c에 'a'가 저장되는 것 같지만
실제로는 변수 c에는 'a'에 대응되는 아스키 코드 값인 97이 저장됩니다.
이를 실제 c언어에서 확인해보기 위해서는 변수 c에 저장된 정수값을 출력해보면 됩니다.
char c = 'a';
printf("%d", c);
char 형 변수 c에 'a'를 저장한 후
printf를 통해 정수형으로 c를 출력해보면
문자 'a' 에 대응되는 아스키 코드 값인 97이 출력되는 것을 확인할 수 있습니다.
반대의 경우도 마찬가지입니다.
만약 char 형 변수를 만들고 정수를 저장한다면 그 정수에 대응되는 문자가 저장되는 것과 같은 것입니다.
예를 들어보겠습니다.
char c = 65;
char 형 변수 c에 정수 65를 저장한다면 어떻게 될까요?
네, 맞습니다. 아스키 코드 중 65에 대응되는 대문자 A가 c에 저장되는 것과 같은 효과가 있습니다.
char c = 65;
printf("%c", c);
정리
c언어에서 char 자료형인 문자형은 사실 숫자로 값을 저장한다.
숫자로 값을 저장한 후 아스키 코드를 이용해 문자로 변환한다.
'프로그래밍 > C' 카테고리의 다른 글
[C언어] visual studio 설치 C언어 개발 환경 구축 (2) | 2024.01.17 |
---|---|
[C언어] C언어란 무엇인가? (0) | 2024.01.17 |
[C언어] 특정 형식 입력(숫자/숫자/숫자) (0) | 2023.04.30 |
[C언어] scanf() this function or variable may be unsafe. 오류 해결 (0) | 2023.04.30 |
[C언어] 기본 입출력 scanf(), printf() (0) | 2023.04.29 |