
메모리에 저장할 수 있는 값은 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언어' 카테고리의 다른 글
C언어 - 배열과 함수 (0) | 2021.01.24 |
---|---|
C언어 - 배열의 시작 (0) | 2021.01.20 |
C언어 - 타입캐스팅 typecasting (0) | 2021.01.15 |
C언어 - 사용자 정의 함수 (최종) (0) | 2021.01.14 |
C언어 - 매개변수 (0) | 2021.01.13 |