ASCII: American Standard Code for Information Interchange
ASCII is one of the most fundamental character encoding standards in computing history. Developed in the early 1960s, it was the first widely adopted character encoding standard that provided a common way to represent text across different computer systems. The standard was officially published in 1963 by the American National Standards Institute (ANSI) and quickly became the foundation for text representation in computers.
0null
1start of heading
2start of text
3end of text
4end of transmission
5enquiry
6acknowledge
7bell
8backspace
9horizontal tab
10line feed
11vertical tab
12form feed
13carriage return
14shift out
15shift in
16data link escape
17device control 1
18device control 2
19device control 3
20device control 4
21negative ack.
22synchronous idle
23end of trans. block
24cancel
25end of medium
26substitute
27escape
28file separator
29group separator
30record separator
31unit separator
32space
33!
34"
35#
36$
37%
38&
39'
40(
41)
42*
43+
44,
45-
46.
47/
480
491
502
513
524
535
546
557
568
579
58:
59;
60<
61=
62>
63?
64@
65A
66B
67C
68D
69E
70F
71G
72H
73I
74J
75K
76L
77M
78N
79O
80P
81Q
82R
83S
84T
85U
86V
87W
88X
89Y
90Z
91[
92\
93]
94^
95_
96`
97a
98b
99c
100d
101e
102f
103g
104h
105i
106j
107k
108l
109m
110n
111o
112p
113q
114r
115s
116t
117u
118v
119w
120x
121y
122z
123{
124|
125}
126~
127
0null
1start of heading
2start of text
3end of text
4end of transmission
5enquiry
6acknowledge
7bell
8backspace
9horizontal tab
10line feed
11vertical tab
12form feed
13carriage return
14shift out
15shift in
16data link escape
17device control 1
18device control 2
19device control 3
20device control 4
21negative ack.
22synchronous idle
23end of trans. block
24cancel
25end of medium
26substitute
27escape
28file separator
29group separator
30record separator
31unit separator
32space
33!
34"
35#
36$
37%
38&
39'
40(
41)
42*
43+
44,
45-
46.
47/
480
491
502
513
524
535
546
557
568
579
58:
59;
60<
61=
62>
63?
64@
65A
66B
67C
68D
69E
70F
71G
72H
73I
74J
75K
76L
77M
78N
79O
80P
81Q
82R
83S
84T
85U
86V
87W
88X
89Y
90Z
91[
92\
93]
94^
95_
96`
97a
98b
99c
100d
101e
102f
103g
104h
105i
106j
107k
108l
109m
110n
111o
112p
113q
114r
115s
116t
117u
118v
119w
120x
121y
122z
123{
124|
125}
126~
127
0null
1start of heading
2start of text
3end of text
4end of transmission
5enquiry
6acknowledge
7bell
8backspace
9horizontal tab
10line feed
11vertical tab
12form feed
13carriage return
14shift out
15shift in
16data link escape
17device control 1
18device control 2
19device control 3
20device control 4
21negative ack.
22synchronous idle
23end of trans. block
24cancel
25end of medium
26substitute
27escape
28file separator
29group separator
30record separator
31unit separator
32space
33!
34"
35#
36$
37%
38&
39'
40(
41)
42*
43+
44,
45-
46.
47/
480
491
502
513
524
535
546
557
568
579
58:
59;
60<
61=
62>
63?
64@
65A
66B
67C
68D
69E
70F
71G
72H
73I
74J
75K
76L
77M
78N
79O
80P
81Q
82R
83S
84T
85U
86V
87W
88X
89Y
90Z
91[
92\
93]
94^
95_
96`
97a
98b
99c
100d
101e
102f
103g
104h
105i
106j
107k
108l
109m
110n
111o
112p
113q
114r
115s
116t
117u
118v
119w
120x
121y
122z
123{
124|
125}
126~
127
History and Development
The development of ASCII was driven by the need for standardization in the early days of computing. Before ASCII, different computer manufacturers used their own character encoding schemes, making it difficult to exchange text data between systems. The American Standards Association (now ANSI) formed a committee in 1960 to develop a standard character encoding, which resulted in the ASCII standard.
The first version of ASCII was published in 1963, with a major revision in 1967 that added lowercase letters and some control characters. The final version, known as US-ASCII, was published in 1968 and has remained unchanged since then. This version defined 128 characters, including 95 printable characters and 33 control characters.
Technical Details
ASCII is a 7-bit character encoding scheme, meaning it uses 7 bits to represent each character. This allows for 128 different characters (2^7 = 128). The standard defines a specific mapping between these 128 values and characters, including:
- Uppercase letters (A-Z)
- Lowercase letters (a-z)
- Digits (0-9)
- Punctuation marks
- Control characters
The control characters (0-31 and 127) were designed for specific purposes in early computing systems. For example, the carriage return (CR, 13) and line feed (LF, 10) characters were used to control the movement of the print head in teletype machines.
Character Set Organization
The ASCII character set is organized into several logical groups:
- Control characters (0-31 and 127)
- Special characters (32-47, 58-64, 91-96, 123-126)
- Digits (48-57)
- Uppercase letters (65-90)
- Lowercase letters (97-122)
This organization was designed to make it easy to convert between uppercase and lowercase letters (by flipping bit 5) and to convert between digits and their numeric values (by subtracting 48).
Impact and Legacy
ASCII has had a profound impact on computing and continues to influence modern character encoding standards. It was the foundation for many later character encodings, including ISO-8859 and Unicode. The ASCII character set is still used today in many applications, particularly in programming and data exchange.
The standard's influence can be seen in modern character encodings like UTF-8, which is designed to be backward compatible with ASCII. This means that any valid ASCII text is also valid UTF-8 text, making it easy to transition from ASCII to more modern encodings.
Limitations
Despite its historical importance, ASCII has several limitations:
- It can only represent 128 characters, which is insufficient for many languages and special symbols
- It was designed primarily for English and lacks support for other languages
- It doesn't include many special characters and symbols used in modern computing
These limitations led to the development of extended ASCII variants and, ultimately, to Unicode, which provides a much more comprehensive character set.
References
- ANSI X3.4-1968: American Standard Code for Information Interchange
- Ceruzzi, P. E. (2012). "Computing: A Concise History"
- Mackenzie, C. E. (1980). "Coded Character Sets: History and Development"