> ASCII Table Reference_

Complete ASCII table showing all 128 characters with their decimal, hexadecimal, binary, and octal values.

Control Characters (0-31)

Dec Hex Binary Char Description
0 00 00000000 NUL Null
1 01 00000001 SOH Start of Heading
2 02 00000010 STX Start of Text
3 03 00000011 ETX End of Text
4 04 00000100 EOT End of Transmission
5 05 00000101 ENQ Enquiry
6 06 00000110 ACK Acknowledge
7 07 00000111 BEL Bell
8 08 00001000 BS Backspace
9 09 00001001 TAB Horizontal Tab
10 0A 00001010 LF Line Feed
11 0B 00001011 VT Vertical Tab
12 0C 00001100 FF Form Feed
13 0D 00001101 CR Carriage Return
14 0E 00001110 SO Shift Out
15 0F 00001111 SI Shift In
16 10 00010000 DLE Data Link Escape
17 11 00010001 DC1 Device Control 1
18 12 00010010 DC2 Device Control 2
19 13 00010011 DC3 Device Control 3
20 14 00010100 DC4 Device Control 4
21 15 00010101 NAK Negative Acknowledge
22 16 00010110 SYN Synchronous Idle
23 17 00010111 ETB End of Trans. Block
24 18 00011000 CAN Cancel
25 19 00011001 EM End of Medium
26 1A 00011010 SUB Substitute
27 1B 00011011 ESC Escape
28 1C 00011100 FS File Separator
29 1D 00011101 GS Group Separator
30 1E 00011110 RS Record Separator
31 1F 00011111 US Unit Separator

Printable Characters (32-127)

Dec Hex Binary Char
32 20 00100000 SP
33 21 00100001 !
34 22 00100010 "
35 23 00100011 #
36 24 00100100 $
37 25 00100101 %
38 26 00100110 &
39 27 00100111 '
40 28 00101000 (
41 29 00101001 )
42 2A 00101010 *
43 2B 00101011 +
44 2C 00101100 ,
45 2D 00101101 -
46 2E 00101110 .
47 2F 00101111 /
48 30 00110000 0
49 31 00110001 1
50 32 00110010 2
51 33 00110011 3
52 34 00110100 4
53 35 00110101 5
54 36 00110110 6
55 37 00110111 7
56 38 00111000 8
57 39 00111001 9
58 3A 00111010 :
59 3B 00111011 ;
60 3C 00111100 <
61 3D 00111101 =
62 3E 00111110 >
63 3F 00111111 ?
64 40 01000000 @
65 41 01000001 A
66 42 01000010 B
67 43 01000011 C
68 44 01000100 D
69 45 01000101 E
70 46 01000110 F
71 47 01000111 G
72 48 01001000 H
73 49 01001001 I
74 4A 01001010 J
75 4B 01001011 K
76 4C 01001100 L
77 4D 01001101 M
78 4E 01001110 N
79 4F 01001111 O
80 50 01010000 P
81 51 01010001 Q
82 52 01010010 R
83 53 01010011 S
84 54 01010100 T
85 55 01010101 U
86 56 01010110 V
87 57 01010111 W
88 58 01011000 X
89 59 01011001 Y
90 5A 01011010 Z
91 5B 01011011 [
92 5C 01011100 \
93 5D 01011101 ]
94 5E 01011110 ^
95 5F 01011111 _
96 60 01100000 `
97 61 01100001 a
98 62 01100010 b
99 63 01100011 c
100 64 01100100 d
101 65 01100101 e
102 66 01100110 f
103 67 01100111 g
104 68 01101000 h
105 69 01101001 i
106 6A 01101010 j
107 6B 01101011 k
108 6C 01101100 l
109 6D 01101101 m
110 6E 01101110 n
111 6F 01101111 o
112 70 01110000 p
113 71 01110001 q
114 72 01110010 r
115 73 01110011 s
116 74 01110100 t
117 75 01110101 u
118 76 01110110 v
119 77 01110111 w
120 78 01111000 x
121 79 01111001 y
122 7A 01111010 z
123 7B 01111011 {
124 7C 01111100 |
125 7D 01111101 }
126 7E 01111110 ~
127 7F 01111111 DEL

About ASCII

ASCII (American Standard Code for Information Interchange) was developed in the 1960s and defines 128 characters. Codes 0-31 are control characters, 32-126 are printable characters, and 127 is the delete character. ASCII forms the basis of Unicode and nearly all modern text encoding.

History of ASCII

ASCII was developed by the American Standards Association (now ANSI) and published as a standard in 1963, with significant revisions in 1967 and 1968. It emerged from telegraph code conventions and was designed to enable reliable data exchange between different computer systems and teleprinter equipment at a time when every manufacturer used incompatible character encodings.

The standard encodes 128 characters using 7 bits (values 0–127). The choice of 7 bits was a compromise: it allowed the eighth bit to be used as a parity check bit for error detection over noisy telephone lines, which was critical for early modem communications. IBM's popular extended ASCII used all 8 bits to add 128 additional characters (codes 128–255), including line-drawing characters, accented letters, and graphical symbols — but these extensions were never standardised and varied between manufacturers.

Control Characters (Codes 0–31)

The first 32 ASCII codes are non-printing control characters inherited from teleprinter conventions. Many are now obsolete, but several remain in active use today:

ASCII and Unicode

ASCII's 128 characters are a strict subset of Unicode. The first 128 Unicode code points (U+0000 through U+007F) are identical to ASCII, meaning any valid ASCII text is also valid UTF-8, the most widely used Unicode encoding on the web. UTF-8 was specifically designed this way to ensure backward compatibility: a US English text file in ASCII and the same file in UTF-8 are byte-for-byte identical.

Unicode extends far beyond ASCII's 128 characters to over 149,000 characters covering 161 scripts, mathematical symbols, emoji, and historical writing systems. But every modern programming language, database, operating system, and network protocol that handles text ultimately builds on the ASCII foundation established in the 1960s.

ASCII vs Latin-1 vs UTF-8

Several encodings extend ASCII in different directions. Latin-1 (ISO 8859-1) uses 8 bits to add 128 Western European characters (accented letters like é, ü, ñ) in the 128–255 range. Windows-1252 is a Microsoft extension of Latin-1. UTF-8 uses variable-length encoding (1–4 bytes per character) to represent all of Unicode while keeping ASCII characters as single bytes. For new software, UTF-8 is the correct choice; Latin-1 and Windows-1252 are legacy encodings that cause mojibake (garbled text) when mixed.

Frequently Asked Questions

What is ASCII code 32?

ASCII code 32 is the space character (SP). It is the first printable ASCII character and the only whitespace character in the printable range.

What is the ASCII code for A?

Uppercase A is ASCII code 65 (hexadecimal 41). Lowercase a is code 97 (hexadecimal 61). The difference between uppercase and lowercase letters is always 32, which corresponds to flipping bit 5.

Why does ASCII only go to 127?

ASCII uses 7 bits (2⁷ = 128 values, 0–127). The eighth bit was reserved for parity error checking in serial communications. When 8-bit systems became standard, the extra 128 codes were used for extended character sets, but these were never universally standardised.