128 entries

ASCII Table

ASCII assigns a number from 0 to 127 to each of the basic Latin characters, digits, punctuation marks and control codes. Codes 32 to 126 are printable; 0 to 31 and 127 are control characters inherited from teleprinters. Because UTF-8 was designed to be backward compatible, every ASCII code is byte-identical in UTF-8.

ASCII is the foundation every other text encoding was built on top of. Its 128 codes fit in seven bits, which is why they occupy a single byte with the top bit clear, and why a file containing only ASCII characters is valid in ASCII, UTF-8, and every ISO-8859 variant simultaneously.

That compatibility is the practical reason the table still matters. Text that stays inside this range cannot suffer encoding corruption. The moment a document contains a character above 127 — an accented letter, a curly quote, an em dash — the encoding has to be declared correctly or the text will be mangled somewhere down the line.

Printable characters (32–126)

95 entries

The characters you can type and see. Every one of these is byte-identical in ASCII, UTF-8 and every ISO-8859 encoding, which is why ASCII-only text never suffers encoding corruption.

Dec Hex Oct Binary Character Notes
32 0x20 040 00100000 (space) Space —   for a non-breaking one
33 0x21 041 00100001 !
34 0x22 042 00100010 " Double quote — "
35 0x23 043 00100011 #
36 0x24 044 00100100 $
37 0x25 045 00100101 %
38 0x26 046 00100110 & Ampersand — &
39 0x27 047 00100111 ' Apostrophe — '
40 0x28 050 00101000 (
41 0x29 051 00101001 )
42 0x2A 052 00101010 *
43 0x2B 053 00101011 +
44 0x2C 054 00101100 ,
45 0x2D 055 00101101 -
46 0x2E 056 00101110 .
47 0x2F 057 00101111 /
48 0x30 060 00110000 0
49 0x31 061 00110001 1
50 0x32 062 00110010 2
51 0x33 063 00110011 3
52 0x34 064 00110100 4
53 0x35 065 00110101 5
54 0x36 066 00110110 6
55 0x37 067 00110111 7
56 0x38 070 00111000 8
57 0x39 071 00111001 9
58 0x3A 072 00111010 :
59 0x3B 073 00111011 ;
60 0x3C 074 00111100 < Less than — &lt;
61 0x3D 075 00111101 =
62 0x3E 076 00111110 > Greater than — &gt;
63 0x3F 077 00111111 ?
64 0x40 0100 01000000 @
65 0x41 0101 01000001 A
66 0x42 0102 01000010 B
67 0x43 0103 01000011 C
68 0x44 0104 01000100 D
69 0x45 0105 01000101 E
70 0x46 0106 01000110 F
71 0x47 0107 01000111 G
72 0x48 0110 01001000 H
73 0x49 0111 01001001 I
74 0x4A 0112 01001010 J
75 0x4B 0113 01001011 K
76 0x4C 0114 01001100 L
77 0x4D 0115 01001101 M
78 0x4E 0116 01001110 N
79 0x4F 0117 01001111 O
80 0x50 0120 01010000 P
81 0x51 0121 01010001 Q
82 0x52 0122 01010010 R
83 0x53 0123 01010011 S
84 0x54 0124 01010100 T
85 0x55 0125 01010101 U
86 0x56 0126 01010110 V
87 0x57 0127 01010111 W
88 0x58 0130 01011000 X
89 0x59 0131 01011001 Y
90 0x5A 0132 01011010 Z
91 0x5B 0133 01011011 [
92 0x5C 0134 01011100 \
93 0x5D 0135 01011101 ]
94 0x5E 0136 01011110 ^
95 0x5F 0137 01011111 _
96 0x60 0140 01100000 `
97 0x61 0141 01100001 a
98 0x62 0142 01100010 b
99 0x63 0143 01100011 c
100 0x64 0144 01100100 d
101 0x65 0145 01100101 e
102 0x66 0146 01100110 f
103 0x67 0147 01100111 g
104 0x68 0150 01101000 h
105 0x69 0151 01101001 i
106 0x6A 0152 01101010 j
107 0x6B 0153 01101011 k
108 0x6C 0154 01101100 l
109 0x6D 0155 01101101 m
110 0x6E 0156 01101110 n
111 0x6F 0157 01101111 o
112 0x70 0160 01110000 p
113 0x71 0161 01110001 q
114 0x72 0162 01110010 r
115 0x73 0163 01110011 s
116 0x74 0164 01110100 t
117 0x75 0165 01110101 u
118 0x76 0166 01110110 v
119 0x77 0167 01110111 w
120 0x78 0170 01111000 x
121 0x79 0171 01111001 y
122 0x7A 0172 01111010 z
123 0x7B 0173 01111011 {
124 0x7C 0174 01111100 |
125 0x7D 0175 01111101 }
126 0x7E 0176 01111110 ~

Control characters (0–31, 127)

33 entries

Non-printing codes inherited from teleprinters. Most are obsolete; the handful that still matter every day are tab, line feed, carriage return and escape.

Dec Hex Oct Binary Character Notes
0 0x00 00 00000000 NUL Null
1 0x01 01 00000001 SOH Control character
2 0x02 02 00000010 STX Control character
3 0x03 03 00000011 ETX Control character
4 0x04 04 00000100 EOT Control character
5 0x05 05 00000101 ENQ Control character
6 0x06 06 00000110 ACK Control character
7 0x07 07 00000111 BEL Bell
8 0x08 010 00001000 BS Backspace
9 0x09 011 00001001 HT Horizontal tab
10 0x0A 012 00001010 LF Line feed — newline on Unix
11 0x0B 013 00001011 VT Vertical tab
12 0x0C 014 00001100 FF Form feed
13 0x0D 015 00001101 CR Carriage return — paired with LF on Windows
14 0x0E 016 00001110 SO Control character
15 0x0F 017 00001111 SI Control character
16 0x10 020 00010000 DLE Control character
17 0x11 021 00010001 DC1 Control character
18 0x12 022 00010010 DC2 Control character
19 0x13 023 00010011 DC3 Control character
20 0x14 024 00010100 DC4 Control character
21 0x15 025 00010101 NAK Control character
22 0x16 026 00010110 SYN Control character
23 0x17 027 00010111 ETB Control character
24 0x18 030 00011000 CAN Control character
25 0x19 031 00011001 EM Control character
26 0x1A 032 00011010 SUB Control character
27 0x1B 033 00011011 ESC Escape — starts a terminal escape sequence
28 0x1C 034 00011100 FS Control character
29 0x1D 035 00011101 GS Control character
30 0x1E 036 00011110 RS Control character
31 0x1F 037 00011111 US Control character
127 0x7F 0177 01111111 DEL Delete

Notes

  • Codes 128 to 255 are not ASCII. They belong to whichever extension is in use — Windows-1252, ISO-8859-1 or UTF-8 continuation bytes — which is exactly why text in that range is where encoding bugs appear.
  • The uppercase and lowercase letters are 32 apart, so flipping bit 5 changes case. That is why case conversion was cheap on early hardware, and why it only works for unaccented Latin letters.
  • The digits 0 to 9 occupy 48 to 57, so subtracting 48 from a digit character gives its numeric value.

Frequently asked questions

Is ASCII the same as UTF-8?
For the first 128 characters, yes — byte for byte. UTF-8 was deliberately designed so that any valid ASCII file is also a valid UTF-8 file. Above 127 they diverge completely: UTF-8 uses multi-byte sequences, and ASCII simply has nothing there.
What is the difference between LF and CR?
Line feed (10) moves down a line; carriage return (13) returns to the start of the line. Unix and macOS use LF alone, Windows uses CR followed by LF. That difference is the cause of most "the whole file changed" diffs.
Why does the table stop at 127?
ASCII is a seven-bit encoding, so 127 is the largest value it can represent. The eighth bit was originally used for parity checking on serial links, and only later repurposed by the various 8-bit extensions.
What is character 127?
Delete. It is all seven bits set, which on punched tape meant every hole was punched — so a character could be erased by overpunching it. That is also why it sits at the end rather than with the other control codes.

Related tools

All tools →
All references →

Last reviewed .