아스키 코드(ASCII, American Standard Code for Information Interchange)는 문자, 숫자, 특수문자 등을 나타내는 7비트 문자 인코딩 표준입니다. 총 128개의 문자로 구성되어 있으며, 0부터 127까지의 숫자로 표현됩니다. 이 코드는 1963년 미국 표준 협회(ANSI)에 의해 표준화되었으며, 현대 컴퓨터 및 통신 기기에서 널리 사용되고 있습니다.
아스키 코드표는 다음과 같이 구성되어 있습니다
제어 문자(Control Characters): 코드 0부터 31까지의 문자로, 프린터 제어, 파일 전송 등의 용도로 사용됩니다. 예를 들어 LF(Line Feed, 코드 10)는 줄 바꿈을 의미합니다.공백 문자(Whitespace Characters): 코드 32(스페이스)와 9(탭), 13(캐리지 리턴) 등이 포함됩니다.
인쇄 가능 문자(Printable Characters): 코드 33부터 126까지의 문자로, 알파벳, 숫자, 특수 문자 등이 포함됩니다.DEL 문자(Delete): 코드 127은 삭제 문자를 나타냅니다.
아스키 코드는 다음과 같이 다양하게 활용됩니다
문자 인코딩: 문자를 숫자로 표현하여 컴퓨터에서 처리할 수 있게 합니다.데이터 전송: 문자 데이터를 아스키 코드로 변환하여 전송할 수 있습니다.프로그래밍: 프로그래밍 언어에서 문자와 숫자를 구분하고 조작하는 데 사용됩니다.
파일 형식: 텍스트 파일 형식(예: .txt, .csv)은 아스키 코드를 사용합니다.
아스키 코드는 7비트로 표현되어 128개의 문자만 표현할 수 있어, 다국어 지원에 한계가 있습니다. 이를 해결하기 위해 다양한 확장 인코딩이 개발되었습니다
ISO-8859 계열: 라틴어 계열 언어를 지원하는 8비트 인코딩
유니코드(Unicode): 전 세계 모든 문자를 지원하는 16비트 이상의 인코딩 표준
이러한 확장 인코딩은 아스키 코드를 기반으로 하면서도 더 많은 문자를 표현할 수 있습니다.
아스키 코드는 프로그래밍에서 매우 중요한 역할을 합니다. 프로그래밍 언어에서는 문자와 숫자를 구분하고 조작하기 위해 아스키 코드를 사용합니다. 예를 들어 C 언어에서는 char
자료형을 사용하여 문자를 표현하고, 이 문자는 내부적으로 아스키 코드로 저장됩니다. 또한 문자와 숫자 간 변환 시에도 아스키 코드를 활용합니다.
// java
int num = 3;
char sam;
sam = num;
printf("%c", num); // 문자 변수에 3을 넣고 출력하면
//문자 3이 아닌 아스키코드 3에 해당하는 ETX를 부릅니다.
sam = num + 48; // 숫자에 48을 추가해 주면 해당 숫자 아스키 값이 구해짐
printf("%c", num); // 저장해 두고 출력 시에는
// 아스키 51에 해당하는 숫자 3이 문자 c로 출력
활용법
// 대문자 아스키코드가 A-Z(65-90)이고 소문자 아스키코드가 a-z(97-122) char c = 'a'; c = c - 32; printf("%c", c); // 대문자를 소문자로 바꿀 때는 A-32를 해주면 a가 됨
참고) 아스키코드 표
10진수 | 16진수 | 문자 | 10진수 | 16진수 | 문자 | 10진수 | 16진수 | 문자 | 10진수 | 16진수 | 문자 |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0x00 | NUL | 32 | 0x20 | Space | 64 | 0x40 | @ | 96 | 0x60 | ` |
1 | 0x01 | SOH | 33 | 0x21 | ! | 65 | 0x41 | A | 97 | 0x61 | a |
2 | 0x02 | STX | 34 | 0x22 | " | 66 | 0x42 | B | 98 | 0x62 | b |
3 | 0x03 | ETX | 35 | 0x23 | # | 67 | 0x43 | C | 99 | 0x63 | c |
4 | 0x04 | EOT | 36 | 0x24 | $ | 68 | 0x44 | D | 100 | 0x64 | d |
5 | 0x05 | ENQ | 37 | 0x25 | % | 69 | 0x45 | E | 101 | 0x65 | e |
6 | 0x06 | ACK | 38 | 0x26 | & | 70 | 0x46 | F | 102 | 0x66 | f |
7 | 0x07 | BEL | 39 | 0x27 | ' | 71 | 0x47 | G | 103 | 0x67 | g |
8 | 0x08 | BS | 40 | 0x28 | ( | 72 | 0x48 | H | 104 | 0x68 | h |
9 | 0x09 | TAB | 41 | 0x29 | ) | 73 | 0x49 | I | 105 | 0x69 | i |
10 | 0x0A | LF | 42 | 0x2A | * | 74 | 0x4A | J | 106 | 0x6A | j |
11 | 0x0B | VT | 43 | 0x2B | + | 75 | 0x4B | K | 107 | 0x6B | k |
12 | 0x0C | FF | 44 | 0x2C | , | 76 | 0x4C | L | 108 | 0x6C | l |
13 | 0x0D | CR | 45 | 0x2D | - | 77 | 0x4D | M | 109 | 0x6D | m |
14 | 0x0E | SO | 46 | 0x2E | . | 78 | 0x4E | N | 110 | 0x6E | n |
15 | 0x0F | SI | 47 | 0x2F | / | 79 | 0x4F | O | 111 | 0x6F | o |
16 | 0x10 | DLE | 48 | 0x30 | 0 | 80 | 0x50 | P | 112 | 0x70 | p |
17 | 0x11 | DC1 | 49 | 0x31 | 1 | 81 | 0x51 | Q | 113 | 0x71 | q |
18 | 0x12 | DC2 | 50 | 0x32 | 2 | 82 | 0x52 | R | 114 | 0x72 | r |
19 | 0x13 | DC3 | 51 | 0x33 | 3 | 83 | 0x53 | S | 115 | 0x73 | s |
20 | 0x14 | DC4 | 52 | 0x34 | 4 | 84 | 0x54 | T | 116 | 0x74 | t |
21 | 0x15 | NAK | 53 | 0x35 | 5 | 85 | 0x55 | U | 117 | 0x75 | u |
22 | 0x16 | SYN | 54 | 0x36 | 6 | 86 | 0x56 | V | 118 | 0x76 | v |
23 | 0x17 | ETB | 55 | 0x37 | 7 | 87 | 0x57 | W | 119 | 0x77 | w |
24 | 0x18 | CAN | 56 | 0x38 | 8 | 88 | 0x58 | X | 120 | 0x78 | x |
25 | 0x19 | EM | 57 | 0x39 | 9 | 89 | 0x59 | Y | 121 | 0x79 | y |
26 | 0x1A | SUB | 58 | 0x3A | : | 90 | 0x5A | Z | 122 | 0x7A | z |
27 | 0x1B | ESC | 59 | 0x3B | ; | 91 | 0x5B | [ | 123 | 0x7B | { |
28 | 0x1C | FS | 60 | 0x3C | < | 92 | 0x5C | \ | 124 | 0x7C | |
29 | 0x1D | GS | 61 | 0x3D | = | 93 | 0x5D | ] | 125 | 0x7D | } |
30 | 0x1E | RS | 62 | 0x3E | > | 94 | 0x5E | ^ | 126 | 0x7E | ~ |
31 | 0x1F | US | 63 | 0x3F | ? | 95 | 0x5F | _ | 127 | 0x7F | DEL |