ASCII (American Standard Code for Information Interchange) is a character encoding using 7 bits per character. Its history comes from the development of connecting computers (terminals) to teleprinters which required some standardized way to send and receive data as well as a way to control data flow. As a result, ASCII contains a bunch of control characters in the lower set.
Terminals convert keys from your keyboard into ASCII. The 5 lower bits of the character set mapped to a key on the keyboard. The 6th and 7th bit are set to 1 by default and are cleared the shift key and control key, respectively.
Your terminal will automatically convert specific key combinations into the appropriate character (eg. pressing Shift-1 or '!' sends the appropriate ASCII character). The terminal can also send the appropriate control character with the control modifier key. For example, pressing Ctrl-i, ^I
, sends a horizontal tabulation (HT) or tab control character.
ASCII Table
Key modifiers: Control
|
Key modifiers: ?
|
Key modifiers: Shift
|
Key modifiers: None
|
Dec
|
Hex
|
Binary
|
Char
|
0
|
0x00
|
00 00000
|
NUL
|
1
|
0x01
|
00 00001
|
SOH
|
2
|
0x02
|
00 00010
|
STX
|
3
|
0x03
|
00 00011
|
ETX
|
4
|
0x04
|
00 00100
|
EOT
|
5
|
0x05
|
00 00101
|
ENQ
|
6
|
0x06
|
00 00110
|
ACK
|
7
|
0x07
|
00 00111
|
BEL
|
8
|
0x08
|
00 01000
|
BS
|
9
|
0x09
|
00 01001
|
HT
|
10
|
0x0a
|
00 01010
|
LF
|
11
|
0x0b
|
00 01011
|
VT
|
12
|
0x0c
|
00 01100
|
FF
|
13
|
0x0d
|
00 01101
|
CR
|
14
|
0x0e
|
00 01110
|
SO
|
15
|
0x0f
|
00 01111
|
SI
|
16
|
0x10
|
00 10000
|
DLE
|
17
|
0x11
|
00 10001
|
DC1
|
18
|
0x12
|
00 10010
|
DC2
|
19
|
0x13
|
00 10011
|
DC3
|
20
|
0x14
|
00 10100
|
DC4
|
21
|
0x15
|
00 10101
|
NAK
|
22
|
0x16
|
00 10110
|
SYN
|
23
|
0x17
|
00 10111
|
ETB
|
24
|
0x18
|
00 11000
|
CAN
|
25
|
0x19
|
00 11001
|
EM
|
26
|
0x1a
|
00 11010
|
SUB
|
27
|
0x1b
|
00 11011
|
ESC
|
28
|
0x1c
|
00 11100
|
FS
|
29
|
0x1d
|
00 11101
|
GS
|
30
|
0x1e
|
00 11110
|
RS
|
31
|
0x1f
|
00 11111
|
US
|
|
Dec
|
Hex
|
Binary
|
Char
|
32
|
0x20
|
01 00000
|
SPACE
|
33
|
0x21
|
01 00001
|
!
|
34
|
0x22
|
01 00010
|
"
|
35
|
0x23
|
01 00011
|
#
|
36
|
0x24
|
01 00100
|
$
|
37
|
0x25
|
01 00101
|
%
|
38
|
0x26
|
01 00110
|
&
|
39
|
0x27
|
01 00111
|
'
|
40
|
0x28
|
01 01000
|
(
|
41
|
0x29
|
01 01001
|
)
|
42
|
0x2a
|
01 01010
|
*
|
43
|
0x2b
|
01 01011
|
+
|
44
|
0x2c
|
01 01100
|
,
|
45
|
0x2d
|
01 01101
|
-
|
46
|
0x2e
|
01 01110
|
.
|
47
|
0x2f
|
01 01111
|
/
|
48
|
0x30
|
01 10000
|
0
|
49
|
0x31
|
01 10001
|
1
|
50
|
0x32
|
01 10010
|
2
|
51
|
0x33
|
01 10011
|
3
|
52
|
0x34
|
01 10100
|
4
|
53
|
0x35
|
01 10101
|
5
|
54
|
0x36
|
01 10110
|
6
|
55
|
0x37
|
01 10111
|
7
|
56
|
0x38
|
01 11000
|
8
|
57
|
0x39
|
01 11001
|
9
|
58
|
0x3a
|
01 11010
|
:
|
59
|
0x3b
|
01 11011
|
;
|
60
|
0x3c
|
01 11100
|
<
|
61
|
0x3d
|
01 11101
|
=
|
62
|
0x3e
|
01 11110
|
>
|
63
|
0x3f
|
01 11111
|
?
|
|
Dec
|
Hex
|
Binary
|
Char
|
64
|
0x40
|
10 00000
|
@
|
65
|
0x41
|
10 00001
|
A
|
66
|
0x42
|
10 00010
|
B
|
67
|
0x43
|
10 00011
|
C
|
68
|
0x44
|
10 00100
|
D
|
69
|
0x45
|
10 00101
|
E
|
70
|
0x46
|
10 00110
|
F
|
71
|
0x47
|
10 00111
|
G
|
72
|
0x48
|
10 01000
|
H
|
73
|
0x49
|
10 01001
|
I
|
74
|
0x4a
|
10 01010
|
J
|
75
|
0x4b
|
10 01011
|
K
|
76
|
0x4c
|
10 01100
|
L
|
77
|
0x4d
|
10 01101
|
M
|
78
|
0x4e
|
10 01110
|
N
|
79
|
0x4f
|
10 01111
|
O
|
80
|
0x50
|
10 10000
|
P
|
81
|
0x51
|
10 10001
|
Q
|
82
|
0x52
|
10 10010
|
R
|
83
|
0x53
|
10 10011
|
S
|
84
|
0x54
|
10 10100
|
T
|
85
|
0x55
|
10 10101
|
U
|
86
|
0x56
|
10 10110
|
V
|
87
|
0x57
|
10 10111
|
W
|
88
|
0x58
|
10 11000
|
X
|
89
|
0x59
|
10 11001
|
Y
|
90
|
0x5a
|
10 11010
|
Z
|
91
|
0x5b
|
10 11011
|
[
|
92
|
0x5c
|
10 11100
|
\
|
93
|
0x5d
|
10 11101
|
]
|
94
|
0x5e
|
10 11110
|
^
|
95
|
0x5f
|
10 11111
|
_
|
|
Dec
|
Hex
|
Binary
|
Char
|
96
|
0x60
|
11 00000
|
`
|
97
|
0x61
|
11 00001
|
a
|
98
|
0x62
|
11 00010
|
b
|
99
|
0x63
|
11 00011
|
c
|
100
|
0x64
|
11 00100
|
d
|
101
|
0x65
|
11 00101
|
e
|
102
|
0x66
|
11 00110
|
f
|
103
|
0x67
|
11 00111
|
g
|
104
|
0x68
|
11 01000
|
h
|
105
|
0x69
|
11 01001
|
i
|
106
|
0x6a
|
11 01010
|
j
|
107
|
0x6b
|
11 01011
|
k
|
108
|
0x6c
|
11 01100
|
l
|
109
|
0x6d
|
11 01101
|
m
|
110
|
0x6e
|
11 01110
|
n
|
111
|
0x6f
|
11 01111
|
o
|
112
|
0x70
|
11 10000
|
p
|
113
|
0x71
|
11 10001
|
q
|
114
|
0x72
|
11 10010
|
r
|
115
|
0x73
|
11 10011
|
s
|
116
|
0x74
|
11 10100
|
t
|
117
|
0x75
|
11 10101
|
u
|
118
|
0x76
|
11 10110
|
v
|
119
|
0x77
|
11 10111
|
w
|
120
|
0x78
|
11 11000
|
x
|
121
|
0x79
|
11 11001
|
y
|
122
|
0x7a
|
11 11010
|
z
|
123
|
0x7b
|
11 11011
|
{
|
124
|
0x7c
|
11 11100
|
|
|
125
|
0x7d
|
11 11101
|
}
|
126
|
0x7e
|
11 11110
|
~
|
127
|
0x7f
|
11 11111
|
DEL
|
|
See Also
- https://en.wikipedia.org/wiki/ASCII
- https://www.aivosto.com/articles/control-characters.html