c언어 아스키 코드(ASCII code)란? "아스키 코드 표"

 

아스키 코드(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")을 실행하는 선택문을 사용했습니다. 

댓글

Designed by JB FACTORY