ASCII Reference

The complete 7-bit ASCII character set.

ASCII Reference

The complete 7-bit character set, its control codes, printable characters, and common relationships.

Updated 2026-07-22

Overview

ASCII is a 7-bit character encoding containing 128 code points numbered 0 through 127. It was designed for information interchange and remains the common foundation of many modern text encodings.

The first 32 values and value 127 are control characters. Values 32 through 126 are printable characters. Unicode preserves this range as U+0000 through U+007F, and UTF-8 represents it with the same single-byte values.

Code Ranges

CategoryDecimalHexadecimalDescription
C0 controls0–3100–1FControl characters
Space3220First printable character
Digits48–5730–39Characters 0 through 9
Uppercase letters65–9041–5ACharacters A through Z
Lowercase letters97–12261–7ACharacters a through z
Printable characters32–12620–7ESpace through tilde
Delete1277FDEL control character

Control Characters

Control characters do not represent ordinary printable glyphs. Their original purposes included controlling terminals, data links, printers, and record-oriented data streams. Some, including tab, line feed, carriage return, escape, and delete, remain common.

BinaryOctalDecimalHexUnicodeAbbr.PictureCaretEscapeName
0000000000000U+0000NUL^@\0Null
0000001001101U+0001SOH^AStart of Heading
0000010002202U+0002STX^BStart of Text
0000011003303U+0003ETX^CEnd of Text
0000100004404U+0004EOT^DEnd of Transmission
0000101005505U+0005ENQ^EEnquiry
0000110006606U+0006ACK^FAcknowledgement
0000111007707U+0007BEL^G\aBell
0001000010808U+0008BS^H\bBackspace
0001001011909U+0009HT^I\tHorizontal Tab
0001010012100AU+000ALF^J\nLine Feed
0001011013110BU+000BVT^K\vVertical Tab
0001100014120CU+000CFF^L\fForm Feed
0001101015130DU+000DCR^M\rCarriage Return
0001110016140EU+000ESO^NShift Out
0001111017150FU+000FSI^OShift In
00100000201610U+0010DLE^PData Link Escape
00100010211711U+0011DC1^QDevice Control 1 (often XON)
00100100221812U+0012DC2^RDevice Control 2
00100110231913U+0013DC3^SDevice Control 3 (often XOFF)
00101000242014U+0014DC4^TDevice Control 4
00101010252115U+0015NAK^UNegative Acknowledgement
00101100262216U+0016SYN^VSynchronous Idle
00101110272317U+0017ETB^WEnd of Transmission Block
00110000302418U+0018CAN^XCancel
00110010312519U+0019EM^YEnd of Medium
0011010032261AU+001ASUB^ZSubstitute
0011011033271BU+001BESC^[\x1BEscape
0011100034281CU+001CFS^\File Separator
0011101035291DU+001DGS^]Group Separator
0011110036301EU+001ERS^^Record Separator
0011111037311FU+001FUS^_Unit Separator
11111111771277FU+007FDEL^?Delete

Printable Characters

BinaryOctalDecimalHexUnicodeGlyph
01000000403220U+0020SP
01000010413321U+0021!
01000100423422U+0022"
01000110433523U+0023#
01001000443624U+0024$
01001010453725U+0025%
01001100463826U+0026&
01001110473927U+0027'
01010000504028U+0028(
01010010514129U+0029)
0101010052422AU+002A*
0101011053432BU+002B+
0101100054442CU+002C,
0101101055452DU+002D-
0101110056462EU+002E.
0101111057472FU+002F/
01100000604830U+00300
01100010614931U+00311
01100100625032U+00322
01100110635133U+00333
01101000645234U+00344
01101010655335U+00355
01101100665436U+00366
01101110675537U+00377
01110000705638U+00388
01110010715739U+00399
0111010072583AU+003A:
0111011073593BU+003B;
0111100074603CU+003C<
0111101075613DU+003D=
0111110076623EU+003E>
0111111077633FU+003F?
10000001006440U+0040@
10000011016541U+0041A
10000101026642U+0042B
10000111036743U+0043C
10001001046844U+0044D
10001011056945U+0045E
10001101067046U+0046F
10001111077147U+0047G
10010001107248U+0048H
10010011117349U+0049I
1001010112744AU+004AJ
1001011113754BU+004BK
1001100114764CU+004CL
1001101115774DU+004DM
1001110116784EU+004EN
1001111117794FU+004FO
10100001208050U+0050P
10100011218151U+0051Q
10100101228252U+0052R
10100111238353U+0053S
10101001248454U+0054T
10101011258555U+0055U
10101101268656U+0056V
10101111278757U+0057W
10110001308858U+0058X
10110011318959U+0059Y
1011010132905AU+005AZ
1011011133915BU+005B[
1011100134925CU+005C\
1011101135935DU+005D]
1011110136945EU+005E^
1011111137955FU+005F_
11000001409660U+0060`
11000011419761U+0061a
11000101429862U+0062b
11000111439963U+0063c
110010014410064U+0064d
110010114510165U+0065e
110011014610266U+0066f
110011114710367U+0067g
110100015010468U+0068h
110100115110569U+0069i
11010101521066AU+006Aj
11010111531076BU+006Bk
11011001541086CU+006Cl
11011011551096DU+006Dm
11011101561106EU+006En
11011111571116FU+006Fo
111000016011270U+0070p
111000116111371U+0071q
111001016211472U+0072r
111001116311573U+0073s
111010016411674U+0074t
111010116511775U+0075u
111011016611876U+0076v
111011116711977U+0077w
111100017012078U+0078x
111100117112179U+0079y
11110101721227AU+007Az
11110111731237BU+007B{
11111001741247CU+007C|
11111011751257DU+007D}
11111101761267EU+007E~

Useful Relationships

  • The numeric value of an ASCII digit is its code minus 48 (0x30).
  • Matching uppercase and lowercase letters differ by 32 (0x20).
  • For ASCII letters only, setting the 0x20 bit converts A–Z to lowercase.
  • For ASCII letters only, clearing the 0x20 bit converts a–z to uppercase.
  • Unix-like systems use LF for line endings; Windows conventionally uses CR followed by LF.
CSS printf '%d 0x%X\n' "'A" "'A" printf '%d 0x%X\n' "'a" "'a"

History and Modern Use

ASCII was standardized during the 1960s and revised over time. Some character positions and names differed between early editions, which explains historical glyph variants found in older tables and equipment.

Today ASCII is most often encountered as the shared subset of Unicode and UTF-8, in programming-language syntax, network protocols, terminal controls, and plain-text file formats.

Description

The complete 7-bit ASCII character set.

References

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies