본문 바로가기

프로그래밍 언어/C언어

C언어 - 아스키코드

 

 

 

 

 

 

 

 

 

 

 

 

메모리에 저장할 수 있는 값은 0과 1, 이진수만 저장할 수 있다.

 

 

그렇다면 알파벳 문자(a, b, c...), 아라비아 숫자(1, 2, 3...)는 어떻게 저장할까?

 

 

알파벳 문자와 아라비아 숫자를 메모리에 직접 저장할 수는 없기에

 

특정 문자에 해당하는 숫자를 미리 정해 놓고(약속해 두고),

 

메모리에는 실제로 그 숫자를 저장한다.

 

Ex) 숫자 '0'은 48, 알파벳 'A'는 65 라고 약속한다.

 

 

아스키 표

 

특정 문자에 해당하는 숫자를 정하는 방식이 컴퓨터마다 다르면 곤란하기에

 

대응되는 표를 만들어서 모든 컴퓨터가 아스키 표를 따른다.

 

 

아래의 표와 같이 아스키코드는 탭 키나, 리턴 키, 벨 소리를 출력하는 값 등

많은 값을 담아내고 있다. (한글도 아스키코드가 있다!)

 

 

< 아스키코드는 절대 외울 필요가 없다. >

 

https://ko.wikipedia.org/wiki/ASCII

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

 

 

 

A에서 Z까지 출력해보자!

 

#include <stdio.h>

int main() {
	char i;
	
	for (i = 65; i <= 90; i++)
		printf("%c\n", i);
}
#include <stdio.h>

int main() {
	char i;
	
	for (i = 'A'; i <= 'Z'; i++)
		printf("%c\n", i);
}

문자에 해당하는 숫자(코드)를 위한 변수를 선언할 때

char

(character)을 사용하며 %c 은 숫자에 대응되는 문자를 출력해준다.

(%d  숫자를 그대로 출력한다.)

 

 

 

1234 를 출력하여 아스키코드를 추가적으로 공부해보자.

 

#include <stdio.h>

int main() {
	int a;
	a = 1234; //천이백삼십사
	printf("%d", a);
}

 

#include <stdio.h>

int main() {
	char a, b, c, d;

	a = '1';
	b = '2';
	c = '3';
	d = '4';

	printf("%c%c%c%c", a, b, c, d);  //일이삼사
}

 

 

#include <stdio.h>

int main() {
	char a, b, c, d;

	a = '1';
	b = '2';
	c = '3';
	d = '4';

	putchar(a);
	putchar(b);
	putchar(c);
	putchar(d);  //일이삼사
}

 

1234를 출력하는 방법은 아주 많다.

 

 

우리는 이 코드에서 천이백삼십사와 일이삼사

두 가지 방법으로 출력되는 것을 눈치채야한다.

 

 

일이삼사로 출력되는 것은 문자열이며 십진수가 아니기에

우리는 아스키코드를 이용하여 일이삼사를 천이십사로 바꿔 볼 것이다.

 

#include <stdio.h>

int main() {
	int s;
	char a, b, c, d;

	a = '1';
	b = '2';
	c = '3';
	d = '4';

	//s에는 어떤 값이 들어가야 할까?

	printf("%d", s);
}

 

% 이므로 s 에는 십진수 1234 (천이백삼십사)가 들어있어야 한다.

 

 

a에 해당하는 값은 '1'로 아스키코드로는 49이다.

 

이를 십진수 1로 바꾸는 방법은 '0'을 빼는 것으로 아스키코드 48을 빼는 것이다.

 

1 <-> 49 - 48

1 <-> '1' - '0'

 

 

코드를 직접 짜보고 완성된 코드와 비교해보자.

 

#include <stdio.h>

int main() {
	int s;
	char a, b, c, d;

	a = '1' - '0';
	b = '2' - '0';
	c = '3' - '0';
	d = '4' - '0';

	s = a * 1000 + b * 100 + c * 10 + d * 1;

	printf("%d", s);
}

 

 

 

https://book.naver.com/bookdb/book_detail.nhn?bid=8187381

'프로그래밍 언어 > C언어' 카테고리의 다른 글