C언어(2020년)

9. ASCII 코드

리더2333 2020. 11. 2. 15:36
반응형

미국정보교환표준부호(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