ASCII Table — Complete 128-Character Reference

The full ASCII character set with decimal, hexadecimal, octal, and binary codes. Filter by category or search by character, code, or description.

DecCharHexOctBinaryDescription
0NUL0x0000000000000Null character
1SOH0x0100100000001Start of heading
2STX0x0200200000010Start of text
3ETX0x0300300000011End of text
4EOT0x0400400000100End of transmission
5ENQ0x0500500000101Enquiry
6ACK0x0600600000110Acknowledge
7BEL0x0700700000111Bell / Buzzer sound
8BS0x0801000001000Backspace
9TAB0x0901100001001Horizontal tab character
10LF0x0A01200001010Line feed / Newline
11VT0x0B01300001011Vertical tabulation
12FF0x0C01400001100Form feed
13CR0x0D01500001101Carriage return
14SO0x0E01600001110Shift out
15SI0x0F01700001111Shift in
16DLE0x1002000010000Data link escape
17DC10x1102100010001Device control 1
18DC20x1202200010010Device control 2
19DC30x1302300010011Device control 3
20DC40x1402400010100Device control 4
21NAK0x1502500010101Negative acknowledge
22SYN0x1602600010110Synchronous idle
23ETB0x1702700010111End of trans. block
24CAN0x1803000011000Cancel instruction
25EM0x1903100011001End of medium
26SUB0x1A03200011010Substitute
27ESC0x1B03300011011Escape control code
28FS0x1C03400011100File separator
29GS0x1D03500011101Group separator
30RS0x1E03600011110Record separator
31US0x1F03700011111Unit separator
32SPC0x2004000100000Whitespace space
33!0x2104100100001Printable character: !
34"0x2204200100010Printable character: "
35#0x2304300100011Printable character: #
36$0x2404400100100Printable character: $
37%0x2504500100101Printable character: %
38&0x2604600100110Printable character: &
39'0x2704700100111Printable character: '
40(0x2805000101000Printable character: (
41)0x2905100101001Printable character: )
42*0x2A05200101010Printable character: *
43+0x2B05300101011Printable character: +
44,0x2C05400101100Printable character: ,
45-0x2D05500101101Printable character: -
46.0x2E05600101110Printable character: .
47/0x2F05700101111Printable character: /
4800x3006000110000Printable character: 0
4910x3106100110001Printable character: 1
5020x3206200110010Printable character: 2
5130x3306300110011Printable character: 3
5240x3406400110100Printable character: 4
5350x3506500110101Printable character: 5
5460x3606600110110Printable character: 6
5570x3706700110111Printable character: 7
5680x3807000111000Printable character: 8
5790x3907100111001Printable character: 9
58:0x3A07200111010Printable character: :
59;0x3B07300111011Printable character: ;
60<0x3C07400111100Printable character: <
61=0x3D07500111101Printable character: =
62>0x3E07600111110Printable character: >
63?0x3F07700111111Printable character: ?
64@0x4010001000000Printable character: @
65A0x4110101000001Printable character: A
66B0x4210201000010Printable character: B
67C0x4310301000011Printable character: C
68D0x4410401000100Printable character: D
69E0x4510501000101Printable character: E
70F0x4610601000110Printable character: F
71G0x4710701000111Printable character: G
72H0x4811001001000Printable character: H
73I0x4911101001001Printable character: I
74J0x4A11201001010Printable character: J
75K0x4B11301001011Printable character: K
76L0x4C11401001100Printable character: L
77M0x4D11501001101Printable character: M
78N0x4E11601001110Printable character: N
79O0x4F11701001111Printable character: O
80P0x5012001010000Printable character: P
81Q0x5112101010001Printable character: Q
82R0x5212201010010Printable character: R
83S0x5312301010011Printable character: S
84T0x5412401010100Printable character: T
85U0x5512501010101Printable character: U
86V0x5612601010110Printable character: V
87W0x5712701010111Printable character: W
88X0x5813001011000Printable character: X
89Y0x5913101011001Printable character: Y
90Z0x5A13201011010Printable character: Z
91[0x5B13301011011Printable character: [
92\0x5C13401011100Printable character: \
93]0x5D13501011101Printable character: ]
94^0x5E13601011110Printable character: ^
95_0x5F13701011111Printable character: _
96`0x6014001100000Printable character: `
97a0x6114101100001Printable character: a
98b0x6214201100010Printable character: b
99c0x6314301100011Printable character: c
100d0x6414401100100Printable character: d
101e0x6514501100101Printable character: e
102f0x6614601100110Printable character: f
103g0x6714701100111Printable character: g
104h0x6815001101000Printable character: h
105i0x6915101101001Printable character: i
106j0x6A15201101010Printable character: j
107k0x6B15301101011Printable character: k
108l0x6C15401101100Printable character: l
109m0x6D15501101101Printable character: m
110n0x6E15601101110Printable character: n
111o0x6F15701101111Printable character: o
112p0x7016001110000Printable character: p
113q0x7116101110001Printable character: q
114r0x7216201110010Printable character: r
115s0x7316301110011Printable character: s
116t0x7416401110100Printable character: t
117u0x7516501110101Printable character: u
118v0x7616601110110Printable character: v
119w0x7716701110111Printable character: w
120x0x7817001111000Printable character: x
121y0x7917101111001Printable character: y
122z0x7A17201111010Printable character: z
123{0x7B17301111011Printable character: {
124|0x7C17401111100Printable character: |
125}0x7D17501111101Printable character: }
126~0x7E17601111110Printable character: ~
127DEL0x7F17701111111Delete instruction

Understanding the ASCII Character Encoding Standard

ASCII, the American Standard Code for Information Interchange, is the foundational character encoding that underpins virtually all modern computing. Published in 1963 by the American Standards Association (now ANSI), ASCII assigns numeric values to 128 characters using a 7-bit binary scheme. Despite being over sixty years old, every modern encoding system — from Latin-1 to UTF-8 — maintains backward compatibility with ASCII, making it one of the most enduring standards in technology history.

The Structure of the ASCII Table

The 128 ASCII characters divide into four logical groups. Control characters (codes 0-31 and 127) are non-printable characters originally designed to control teletypes and printers: NUL terminates strings in C, TAB inserts horizontal spacing, LF creates new lines, CR returns the cursor to the left margin, and ESC initiates escape sequences. Space (code 32) is the boundary between control and printable characters. Printable characters (codes 33-126) include digits 0-9 at positions 48-57, uppercase letters A-Z at 65-90, lowercase letters a-z at 97-122, and 32 punctuation and symbol characters distributed throughout.

The Elegant Design Behind ASCII

ASCII was not randomly assigned. Its designers embedded mathematical relationships that simplify computation. The uppercase-to-lowercase conversion requires only toggling bit 5 (adding or subtracting 32). Digit characters 0-9 occupy codes 48-57, meaning the numeric value equals the ASCII code minus 48. Letters are alphabetically ordered, so the alphabet position equals the code minus 64 (uppercase) or minus 96 (lowercase). These properties eliminated the need for lookup tables in early hardware with extremely limited memory.

ASCII in Modern Programming

Despite the dominance of Unicode, ASCII remains essential in programming. String comparison and sorting rely on ASCII ordering. Regular expressions use ASCII ranges for character classes like [A-Z] and [0-9]. Network protocols including HTTP, SMTP, and DNS transmit headers and commands as ASCII text. Programming languages use ASCII for identifiers, operators, and syntax. Even in a Unicode world, the ASCII subset remains the lingua franca of machine-to-machine communication.

From ASCII to Unicode: The Evolution

ASCII's 128-character limit was sufficient for English text but inadequate for the world's writing systems. Extended ASCII (codes 128-255) added European characters but created incompatible regional variants. Unicode solved this by assigning unique code points to over 149,000 characters from all scripts. UTF-8, the dominant encoding today, uses 1-4 bytes per character and is fully backward-compatible with ASCII: any valid ASCII file is also valid UTF-8. This backward compatibility is why ASCII knowledge remains relevant for every programmer.

Practical Tips for Using This Table

Quick lookups: Use the filter pills above the table to narrow down to the category you need. The "Letters" filter shows all 52 upper and lowercase letters. The "Control" filter isolates the 33 non-printable characters. Code conversion: The table shows four numeric representations for each character — decimal, hexadecimal, octal, and binary — making it easy to convert between bases. Programming reference: When writing string manipulation code, bookmark this page for quick access to character codes, especially for boundary checks and case conversion logic.

Frequently Asked Questions

Related Tools & Charts