미국정보교환표준부호(American Standard Code for Information Interchange)를 줄여서
ASCII (아스키) 또는 아스키 코드라고 한다.
컴퓨터는 0과 1로만 이루어져 있기 때문에
이것은 숫자만이 존재 한다고 보면된다.
그렇기 때문에 미국에서는 애초에 문자(영어)를 전송하기 위하여
ASCII 코드를 사용했다고 보면된다.
예를 들어 숫자 97을 전송하면 받는 곳에서 97을 a 라고 생각하고
98을 전송하면 b
99를 전송하면 c 이런식으로 숫자에 문자의 의미를 담아 전송하기 위함이다.
ASCII 코드는 7비트를 사용한다. (총 128개)
컴퓨터에서 char 이 8비트 이기 때문에 최상의 1bit 를 쓰지 않는다면
ASCII 코드를 char 에 담을 수 있다.
char 는 8비트의 자료형으로서 총 256개의 데이터를 표현 할 수 있는데
255를 16진수로 표현하면 FF 이다.
일반적으로 16 진수를 표현 할 때에는 0xFF 이렇게 앞에 0x 를 붙여주게 되는데,
0x00 ~ 0xFF 까지가 총 256개 이므로 8비트인 char 를 표현하기에는 16진수가 딱 맞다.
여기서 잠깐!
16진수란
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F
...
이런식으로 16개 씩 자리수가 올라가도록 표현한 수라고 보면 된다.
아라비아 숫자가 0~9 밖에 없으므로 부족한 6개의 부호를 A~F 로 대신하는 것이다.
그렇기 때문에 보통 ASCII 코드를 표현할 때, 16진수를 이용하는 경우가 많다.
아래는 ASCII 코드 표이다.
NUL : null
SOH : start of heading
STX : start of text
ETX : end of text
EOT : end of transmission
ENQ : enquiry
ACK : acknowledge
BEL : bell
BS : backspace
TAB : horizontal tab
LF : NL line feed, new line
VT : vertical tab
FF : NF form feed, new page
CR : carrige return
SO : shift out
SI : shift in
DLE : data link escape
DC1 : device control 1
DC2 : device control 2
DC3 : device control 3
DC4 : device control 4
NAK : negaive acknowledge
SYN : synchronous idle
ETB : end of trans. block
CAN : cancel
EM : end of medium
SUB : substitute
ESC : escape
FS : file separator
GS : group separator
RS : record separator
US : unit separator
SP : space
char ascii = 97;
printf("%c", ascii);
위와 같이 char 에 아스키코드값 97 을 입력하고
printf 에서 %c 형태로 출력 하면 'a' 를 출력할 수 있다.
참고) 그 외 제어문은 초기 통신을 위해 사용한 코드로 printf에서 %c 해도 표기 되지 않는다.
char ascii = 'a';
printf("%d", ascii);
반대로 char 형 변수에 'a' 를 입력하고,
printf 에서 %d 형태로 출력하면 97 이 출력함을 확인 할 수 있다.
'C언어(2020년)' 카테고리의 다른 글
11. while 문 (0) | 2020.11.02 |
---|---|
10. switch case 문 (0) | 2020.11.02 |
8. if else 문 (0) | 2020.11.02 |
7. if 문 (0) | 2020.11.02 |
6. scanf_s() 함수 (0) | 2020.11.02 |