SW개발

ASCII

박종명 2023. 10. 27. 09:04
728x90
이 글은 제가 과거에 운영했던 사이트인 http://dotnet.mkexdev.net 의 글을 옮겨온 것입니다. 원본 글은 2008년 5월에 작성되었습니다.

그 전에 운영했었던 사이트(mkex.pe.kr)은 흔적도 없이 사라 졌습니다. 그속의 글들도 모두... 그래서 이 사이트도 사라지기 전에 옮기고 싶은 글을 조금씩 이 블로그로 이동시키려 합니다.
(원본글) http://dotnet.mkexdev.net/Article/Content.aspx?parentCategoryID=2&categoryID=9&ID=102

 

ASCII 정의
미국 정보 교환 표준 부호(American Standard Code for Information Interchange) 의 약자인 ASCII  영문 알파벳을 사용하는 대표적인 문자 인코딩(Encoding) 이다.

컴퓨터는 0 1 로 구성된 진수밖에 인식하지 못한다.
이 말은 곧 컴퓨터는 숫자밖에 인식하지 못한다는 의미인 것이다.

그렇다면 컴퓨터에게 문자를 인식하도록 할려면???

그렇다. 숫자밖에 인식하지 못하는 컴퓨터에게 인간의 언어인 문자를 인식하도록 하려면 여전히 숫자를 사용할 수 밖에 없다.

그렇다면 숫자를 이용해서 문자를 표현하는 규칙이 있어야 한다.
즉 숫자  N 은 문자 X 와 일디일 매핑(mapping) 시키는 개념을 규칙화 시켜야 한다.
이러한 매핑 규칙을 정의해 놓은 것이 바로 ASCII 코드표 이다.

 아래와 같은 코드를 보자

char c = ‘A’

내부적으로 c 에는 65 라는 정수가 저장된다.

ASCII 구성
 128  (7비트로 표현 가능한 범위 , 2의 7승 = 128) 로 구성

33  : 출력 불가능한 제어 문자들
95  : 출력 가능한 문자(공백 포함)
           52 : 영문 알파벳 대소문자, 10개의 숫자, 32개의 특수문자, 1개의 공백문자

구분 개수 구간  
출력 불가능
제어 문자
33 0 ~ 31
127
 
출력 가능 문자(공백포함)
 
95 32 ~ 126 구분 개수 구간
영문 52 65 ~ 90  (대문자)
97 ~ 122 (소문자)
특수문자 32 33 ~ 47
58 ~ 64
91 ~ 96
123 ~ 126
숫자 10 48 ~ 57
공백문자 1 32

 

출력 가능한 95개 문자 (32  ~ 126 )

 



ASCII 코드표

DEC HEX OCT Char   DEC HEX OCT Char   DEC HEX OCT Char
0 00 000 Ctrl-@ NUL 43 2B 053 + 86 56 126 V
1 01 001 Ctrl-A SOH 44 2C 054 , 87 57 127 W
2 02 002 Ctrl-B STX 45 2D 055 - 88 58 130 X
3 03 003 Ctrl-C ETX 46 2E 056 . 89 59 131 Y
4 04 004 Ctrl-D EOT 47 2F 057 / 90 5A 132 Z
5 05 005 Ctrl-E ENQ 48 30 060 0 91 5B 133 [
6 06 006 Ctrl-F ACK 49 31 061 1 92 5C 134 \
7 07 007 Ctrl-G BEL 50 32 062 2 93 5D 135 ]
8 08 010 Ctrl-H BS 51 33 063 3 94 5E 136 ^
9 09 011 Ctrl-I HT 52 34 064 4 95 5F 137 _
10 0A 012 Ctrl-J LF 53 35 065 5 96 60 140 `
11 0B 013 Ctrl-K VT 54 36 066 6 97 61 141 a
12 0C 014 Ctrl-L FF 55 37 067 7 98 62 142 b
13 0D 015 Ctrl-M CR 56 38 070 8 99 63 143 c
14 0E 016 Ctrl-N SO 57 39 071 9 100 64 144 d
15 0F 017 Ctrl-O SI 58 3A 072 : 101 65 145 e
16 10 020 Ctrl-P DLE 59 3B 073 ; 102 66 146 f
17 11 021 Ctrl-Q DCI 60 3C 074 <  103 67 147 g
18 12 022 Ctrl-R DC2 61 3D 075 = 104 68 150 h
19 13 023 Ctrl-S DC3 62 3E 076 >  105 69 151 i
20 14 024 Ctrl-T DC4 63 3F 077 ? 106 6A 152 j
21 15 025 Ctrl-U NAK 64 40 100 @ 107 6B 153 k
22 16 026 Ctrl-V SYN 65 41 101 A 108 6C 154 l
23 17 027 Ctrl-W ETB 66 42 102 B 109 6D 155 m
24 18 030 Ctrl-X CAN 67 43 103 C 110 6E 156 n
25 19 031 Ctrl-Y EM 68 44 104 D 111 6F 157 o
26 1A 032 Ctrl-Z SUB 69 45 105 E 112 70 160 p
27 1B 033 Ctrl-[ ESC 70 46 106 F 113 71 161 q
28 1C 034 Ctrl-\ FS 71 47 107 G 114 72 162 r
29 1D 035 Ctrl-] GS 72 48 110 H 115 73 163 s
30 1E 036 Ctrl-^ RS 73 49 111 I 116 74 164 t
31 1F 037 Ctrl_ US 74 4A 112 J 117 75 165 u
32 20 040 Space 75 4B 113 K 118 76 166 v
33 21 041 ! 76 4C 114 L 119 77 167 w
34 22 042 " 77 4D 115 M 120 78 170 x
35 23 043 # 78 4E 116 N 121 79 171 y
36 24 044 $ 79 4F 117 O 122 7A 172 z
37 25 045 % 80 50 120 P 123 7B 173 {
38 26 046 & 81 51 121 Q 124 7C 174 |
39 27 047 ' 82 52 122 R 125 7D 175 }
40 28 050 ( 83 53 123 S 126 7E 176 ~
41 29 051 ) 84 54 124 T 127 7F 177 DEL
42 2A 052 * 85 55 125 U  

 

 인쇄 불 가능한 제어 문자 
33개에 해당하는 인쇄 불가능 아스키 문자는 프린터와 같은 일부 제어 주변장치를 제어하는데 사용되는 제어 문자이다.

10진수 문자   10진수 문자
0 NUL(null)   16 DLE(data link escape)
1 SOH(start of heading)   17 DC1(device control 1)
2 SOX(start of text)   18 DC2(device control 2)
3 EOX(end of text)   19 DC3(device control 3)
4 EOT(end of transmission)   20 DC4(device control 4)
5 ENQ(inquiry)   21 NAK(negative acknowledge)
6 ACK(acknowledge)   22 SYN(synchronous idle)
7 BEL(bell)   23 ETB(end of transmission block)
8 BS(backspace)   24 CAN(cancel)
9 HT(horizontal tab)   25 EM(end of medium)
10 LF(NL line feed/new line)   26 SUB(substitute)
11 VT(vertical tab)   27 ESC(escape)
12 FF(form feed/new page)   28 FS(file separator)
13 CR(carriage return)   29 GS(group separator)
14 SO(shift out)   30 RS(record separator)
10 SI(shift in)   31 US(unit separator)

 

 

확장 ASCII 인쇄 문자

위의 7 Bit 로는 128개의 문자만을 표현할 수 있다.

더 많은 문자의 표현을 위해 확장 ASCII 라는 것이 있는데 이것은 비트(bit) 를 하나 더 늘려  8 Bit 로 표현하게 되어 총 259 개를 표현할 수 있다.

 128 ~ 255 까지 문자를 추가적으로 표현할 수 있다
(확장 문자 집합은 ASCII 문자 집합과 128개의 그래픽과 선 그리기용 문자를 포함하며 종종 "IBM 문자 집합"이라고도 합니다)