c언어 아스키 코드(ASCII code)란? "아스키 코드 표"
- programming/C Programming
- 2020. 6. 5. 11:00
아스키 코드(ASCII code)란?
ASCII(American Standard Code for Information Interchange) 미국 정보 교환용 표준체계로 한 글자 당 1바이트의 용량을 차지하여 대소문자 52개, 숫자 10개, 특수 문자 32개, 널 문자 1개와 나머지 제어문자를 포함하여 128개의 문자를 표현할 수 있어 미국 정보 교환용에서 현재는 거의 모든 PC에서 사용되는 문자 코드체계입니다.
1바이트(Byte)인데 128개만 표현이 가능한 이유?
1바이트(Byte)는 8비트(bit)로 배웠고 8비트(bit)는 2^8인 256까지 사용이 가능한데 왜 1바이트(byte)의 ASCII code는 128개의 문자까지 지원할까?? 그 이유는 8비트(bit)영역중 1비트(bit)영역을 패리티비트(parity bit)로 사용하기 때문입니다. 1비트(bit)를 사용중이니 나머지 7비트(bit)의 영역을 사용하게 되는데 2^7인 128개까지 표현이 가능하게 되는 것입니다.
패리티 비트(parity bit)는 데이터의 전달 과정에서 오류가 생겼는지 검사하기 위해 0과 1을 붙여 사용하는 것을 말합니다.
c언어의 ASCII code 문자의 고유값
ASCII code는 10진수와 16진수로 0~127까지 문자와 대칭되어집니다.
10진수의 정수
0~31까지 그리고 127은 제어문자 또는 비인쇄 문자
32는 스페이스
34~47, 58~64, 91~96, 123~126은 특수문자
48~57은 0 ~ 9까지의 숫자문자
65~90은 A~Z 까지 영문 대문자
97~122는 a~z까지 영문 소문자
아스키 코드(ASCII code)표 Ctrl + F로 검색 가능
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 |
문자 ASCII code 32~126까지 출력하는 프로그램
ASCII코드는 0~31, 127 제어문자를 제외하면 32 ~126까지 영문 대소문자, 숫자, 특수문자를 출력할 수 있습니다. 문자 영역의 ASCII code를 출력하는 프로그램을 만들어봅시다.
서식문자 %c는 문자 하나를 출력하는 서식문자로 문자 값이 아닌 정수값으로 들어온다면 ASCII code에 맞는 문자로 변환하여 출력해줍니다.
#include <stdio.h>
int main(void)
{
for (int a = 32; a < 127; a++)
{
printf("정수%d = 문자 %c ", a, a);
if (a % 5 == 2) {
printf("\n");
}
}
return 0;
}
반복문 을 사용해서 32 ~ 126까지 반복하면서 해당하는 ASCII code를 출력하는 프로그램을 만들 수 있습니다.
if (a % 5 == 2) {
printf("\n");
}
가운데 if (a % 5 == 2) { }의 소스코드가 들어간것은 5개씩 끊어서 보기 위해 사용한 코드입니다.
a값을 5로 나눠 나머지가 2와 같으면 printf("\n")을 실행하는 선택문을 사용했습니다.
'programming > C Programming' 카테고리의 다른 글
c언어 함수의 구조와 함수의 형태 (4) | 2020.06.05 |
---|---|
c언어 scanf()함수의 입력오류 ( 입력 버퍼 비우기) (3) | 2020.06.05 |
c언어 반복문 '*' (삼각형,피라미드, 다이아몬드) 출력 예제 (5) | 2020.06.04 |
c언어 구구단 출력하기 (13) | 2020.06.02 |
c언어 제어문 - 반복문 for문, while문, do ~ while문 (2) | 2020.06.02 |