본문 바로가기
프로그래밍언어/C언어

자료형이란 무엇인가 - 문자형

by J코딩 2021. 12. 28.
반응형
잠시 여러분 컴퓨터의 키보드를 살펴봅시다. 특수 기호, 알파벳 등의 문자들이 보이나요? 사람은 이러한 문자들을 이해할 수 있지만, 과연 컴퓨터는 이해할 수 있을까요? 컴퓨터는 키보드의 이러한 문자들을 인식하지 못합니다. 컴퓨터는 모든 데이터를 이과 1로 처리하기 때문입니다.
컴퓨터(CPU)는 문자를 인식하지 못한다.

그러면 컴퓨터가 문자를 인식하게 하는 방법은 무엇일까요? 컴퓨터에서 사용되는 데이터는 메모리에 0과 1의 이진수 형태로 저장된다고 했습니다. 그렇다면 "숫자를 문자와 연결해서 인식하면 되지 않을까?"라는 생각을 해볼 수 있습니다.
컴퓨터가 문자를 인식하게 하기 위해 숫자를 문자와 연결하는 방법이 필요한데, 미국표준협회(ANSI, American National Standards Institute) – ASCII(American Standards
Committee for Information Interchange) 코드를 만들어서 숫자를 이용하여 문자를 인식할 수 있는 문자 표현에 대한 표준을 정했습니다. 이 코드를 이용하여 컴퓨터는 문자를 인식합니다.

컴퓨터는 ASCII 코드를 참조해서 문자를 인식한다.

이 책의 부록을 열어 ASCII 코드를 확인해 보면 숫자 65가 문자 'A'로, 숫자 66이 문자 'B'로, 숫자 67이 문자 'C' 로 연결되어 있는 것을 알 수 있습니다.

 

문자형은 정수형 중 하나로 분류됩니다. 이유는 ASCII 코드를 보면 알겠지만, 코드는 10진수 0 ~ 127까지 구성되어 있습니다. 즉, 숫자 0 ~ 127까지 문자가 연결되어 있다는 의미입니다.
양수 0 ~ 127까지의 데이터 표현 범위를 가진 정수형 자료형이 있습니다. 무엇일까요? 바로 char형입니다. char 형의 데이터 표현 범위가 -128 ~ 127까지의 범위를 갖기 때문에 문자를 저장할 때는 int형 변수를 사용하지 않고 char형 변수를 사용합니다.

 

문자형은 char형을 선호한다.

char c='a';

 

예처럼 작은따옴표 안에 문자형 변수에 저장할 문자 하나를 입력하면 됩니다.

 

그리고 다음은 잘못 사용한 문자형의 사례입니다.

 

char c='가';
char c=a;
char c="0";

 

첫 번째 예는 문자형 변수 c에 한글인 '가'를 넣으려고 한 것입니다. 문자형 변수에는 반드시 ASCII 코드로 지정된 숫자 또는 문자만을 저장할 수 있습니다. 특히, 한글의 경우에는 하나의 글자가 2바이트로 지정되기 때문에 문자형 변수에 값으로 넣을 수 없습니다. 두 번째 예는 문자형 변수에 문자 a를 넣었습니다. 그러나 이 경우에는 작은따옴표를 사용하지 않았기 때문에 잘못 사용된 예입니다. 하나의 문자를 문자형 변수에 넣을 경우 반드시 작은따옴표로 문자를 둘러싸야 합니다. 세 번째 예는 큰따옴표를 사용했기 때문에 잘못 사용된 예로 지정되었습니다. 문자를 표현하려면 큰따옴표가 아니라 작은따옴표를 사용해야 합니다.

 

다음 예제는 char형 변수에 저장된 값을 ASCII 코드로 지정된 숫자와 문자를 출력하는 코드입니다.

6행, 9행, 12행에서 char형 변수에 문자를 저장하고 있습니다. 문자가 변수에 저장될 때는 먼저 ASCII 코드 값을 참조해서 저장하게 됩니다.

7행, 10행, 13행에서 char형 변수에 저장된 문자를 출력 서식 %d(10진수 숫자)와 %c(문자)로 각각 출력합니다.

 

다음 예제는 알파벳 문자를 입력하면 ASCII 코드 값을 출력하고 ASCII 코드 값을 입력하면 문자로 출력하는 코드입니다.

8행, 9행에서 키보드로부터 문자를 입력받아 ASCII 코드로 지정된 숫자를 출력합니다.

12행, 13행에서 키보드로부터 ASCII 코드로 지정된 숫자를 입력하면 ASCII 코드로 지정된 문자로 출력합니다.

지금 바로 부록에 있는 ASCII 코드를 참조하여 실행 결과를 눈으로 확인해보기 바랍니다

 

반응형

댓글