ASCII Table Reference

Interactive ASCII character table with decimal, hexadecimal, octal, and binary values. Searchable, filterable, and click-to-copy.

Showing 128 of 128 characters
DecHexOctBinaryCharDescription
00x0000000000000^@NUL (Null)
10x0100100000001^ASOH (Start of Heading)
20x0200200000010^BSTX (Start of Text)
30x0300300000011^CETX (End of Text)
40x0400400000100^DEOT (End of Transmission)
50x0500500000101^EENQ (Enquiry)
60x0600600000110^FACK (Acknowledge)
70x0700700000111^GBEL (Bell)
80x0801000001000^HBS (Backspace)
90x0901100001001^IHT (Horizontal Tab)
100x0A01200001010^JLF (Line Feed)
110x0B01300001011^KVT (Vertical Tab)
120x0C01400001100^LFF (Form Feed)
130x0D01500001101^MCR (Carriage Return)
140x0E01600001110^NSO (Shift Out)
150x0F01700001111^OSI (Shift In)
160x1002000010000^PDLE (Data Link Escape)
170x1102100010001^QDC1 (Device Control 1)
180x1202200010010^RDC2 (Device Control 2)
190x1302300010011^SDC3 (Device Control 3)
200x1402400010100^TDC4 (Device Control 4)
210x1502500010101^UNAK (Negative Acknowledge)
220x1602600010110^VSYN (Synchronous Idle)
230x1702700010111^WETB (End of Trans. Block)
240x1803000011000^XCAN (Cancel)
250x1903100011001^YEM (End of Medium)
260x1A03200011010^ZSUB (Substitute)
270x1B03300011011^[ESC (Escape)
280x1C03400011100^\FS (File Separator)
290x1D03500011101^]GS (Group Separator)
300x1E03600011110^^RS (Record Separator)
310x1F03700011111^_US (Unit Separator)
DecHexOctBinaryCharDescription
320x2004000100000Space
330x2104100100001!Printable character '!'
340x2204200100010"Printable character '"'
350x2304300100011#Printable character '#'
360x2404400100100$Printable character '$'
370x2504500100101%Printable character '%'
380x2604600100110&Printable character '&'
390x2704700100111'Printable character '''
400x2805000101000(Printable character '('
410x2905100101001)Printable character ')'
420x2A05200101010*Printable character '*'
430x2B05300101011+Printable character '+'
440x2C05400101100,Printable character ','
450x2D05500101101-Printable character '-'
460x2E05600101110.Printable character '.'
470x2F05700101111/Printable character '/'
480x30060001100000Printable character '0'
490x31061001100011Printable character '1'
500x32062001100102Printable character '2'
510x33063001100113Printable character '3'
520x34064001101004Printable character '4'
530x35065001101015Printable character '5'
540x36066001101106Printable character '6'
550x37067001101117Printable character '7'
560x38070001110008Printable character '8'
570x39071001110019Printable character '9'
580x3A07200111010:Printable character ':'
590x3B07300111011;Printable character ';'
600x3C07400111100<Printable character '<'
610x3D07500111101=Printable character '='
620x3E07600111110>Printable character '>'
630x3F07700111111?Printable character '?'
DecHexOctBinaryCharDescription
640x4010001000000@Printable character '@'
650x4110101000001APrintable character 'A'
660x4210201000010BPrintable character 'B'
670x4310301000011CPrintable character 'C'
680x4410401000100DPrintable character 'D'
690x4510501000101EPrintable character 'E'
700x4610601000110FPrintable character 'F'
710x4710701000111GPrintable character 'G'
720x4811001001000HPrintable character 'H'
730x4911101001001IPrintable character 'I'
740x4A11201001010JPrintable character 'J'
750x4B11301001011KPrintable character 'K'
760x4C11401001100LPrintable character 'L'
770x4D11501001101MPrintable character 'M'
780x4E11601001110NPrintable character 'N'
790x4F11701001111OPrintable character 'O'
800x5012001010000PPrintable character 'P'
810x5112101010001QPrintable character 'Q'
820x5212201010010RPrintable character 'R'
830x5312301010011SPrintable character 'S'
840x5412401010100TPrintable character 'T'
850x5512501010101UPrintable character 'U'
860x5612601010110VPrintable character 'V'
870x5712701010111WPrintable character 'W'
880x5813001011000XPrintable character 'X'
890x5913101011001YPrintable character 'Y'
900x5A13201011010ZPrintable character 'Z'
910x5B13301011011[Printable character '['
920x5C13401011100\Printable character '\'
930x5D13501011101]Printable character ']'
940x5E13601011110^Printable character '^'
950x5F13701011111_Printable character '_'
DecHexOctBinaryCharDescription
960x6014001100000`Printable character '`'
970x6114101100001aPrintable character 'a'
980x6214201100010bPrintable character 'b'
990x6314301100011cPrintable character 'c'
1000x6414401100100dPrintable character 'd'
1010x6514501100101ePrintable character 'e'
1020x6614601100110fPrintable character 'f'
1030x6714701100111gPrintable character 'g'
1040x6815001101000hPrintable character 'h'
1050x6915101101001iPrintable character 'i'
1060x6A15201101010jPrintable character 'j'
1070x6B15301101011kPrintable character 'k'
1080x6C15401101100lPrintable character 'l'
1090x6D15501101101mPrintable character 'm'
1100x6E15601101110nPrintable character 'n'
1110x6F15701101111oPrintable character 'o'
1120x7016001110000pPrintable character 'p'
1130x7116101110001qPrintable character 'q'
1140x7216201110010rPrintable character 'r'
1150x7316301110011sPrintable character 's'
1160x7416401110100tPrintable character 't'
1170x7516501110101uPrintable character 'u'
1180x7616601110110vPrintable character 'v'
1190x7716701110111wPrintable character 'w'
1200x7817001111000xPrintable character 'x'
1210x7917101111001yPrintable character 'y'
1220x7A17201111010zPrintable character 'z'
1230x7B17301111011{Printable character '{'
1240x7C17401111100|Printable character '|'
1250x7D17501111101}Printable character '}'
1260x7E17601111110~Printable character '~'
1270x7F17701111111^?DEL (Delete)

The Complete Guide to ASCII Character Encoding

What Is ASCII?

ASCII, which stands for the American Standard Code for Information Interchange, is a character encoding standard that has been the bedrock of digital communication since its creation in 1963. Developed by the American National Standards Institute (ANSI), ASCII assigns a unique numerical value to 128 characters, including the English alphabet (both uppercase and lowercase), digits 0 through 9, common punctuation marks, and a set of special control characters. This standardized mapping between numbers and characters allows different computers, operating systems, and software applications to exchange text data in a consistent and predictable manner.

The 128 ASCII characters are divided into two main groups: control characters (codes 0-31 and 127) and printable characters (codes 32-126). Control characters were originally designed to manage hardware devices such as printers and teleprinters, and include codes for operations like carriage return, line feed, tab, and bell. While many of these control characters have become obsolete with modern computing, several remain essential — the newline character (LF, code 10), carriage return (CR, code 13), and horizontal tab (HT, code 9) are still used universally in text processing and file formatting across all operating systems.

The Structure of the ASCII Table

The ASCII table is organized in a deliberately logical manner that reflects the binary nature of computing. The printable characters begin at code 32 (the space character) and continue through code 126 (the tilde ~). The uppercase letters A through Z occupy codes 65 through 90, while their lowercase counterparts a through z occupy codes 97 through 122. This arrangement is not coincidental — the difference between an uppercase letter and its lowercase equivalent is exactly 32, which corresponds to a single bit flip in binary (bit 5). This clever design allows programmers to convert between uppercase and lowercase by simply toggling a single bit, an optimization that was particularly valuable in the era of resource- constrained computing.

The digits 0 through 9 occupy codes 48 through 57, which means you can convert a digit character to its numeric value by subtracting 48 (or subtracting the ASCII value of '0'). Punctuation marks and special symbols fill the remaining printable positions, with commonly used characters like the space (32), exclamation mark (33), and at sign (64) placed at memorable positions. Understanding these numerical relationships between characters is valuable for programmers, system administrators, and anyone who works with text data at a low level.

Extended ASCII and Character Set Limitations

While standard ASCII uses 7 bits and defines only 128 characters, the widespread adoption of 8-bit bytes in computer architecture created an opportunity to extend the character set. Extended ASCII uses the full 8-bit byte to represent 256 characters, with codes 128 through 255 providing additional characters beyond the original ASCII specification. However, unlike standard ASCII, there is no single universal extended ASCII standard. Multiple competing extensions were developed, including ISO 8859-1 (Latin-1) for Western European languages, Windows-1252 for the Windows operating system, and various code pages for other language groups.

These competing standards created significant interoperability problems. A text file encoded with one extended ASCII variant would display incorrect characters when opened with a system expecting a different variant. This fragmentation was one of the primary motivations for developing Unicode, which provides a single, universal character encoding capable of representing characters from all writing systems. Despite Unicode's widespread adoption, understanding ASCII remains essential because ASCII forms the foundation of Unicode — the first 128 Unicode code points are identical to ASCII, and the UTF-8 encoding scheme represents ASCII characters with a single byte, ensuring complete backward compatibility.

ASCII in Modern Computing and Programming

Despite being over six decades old, ASCII continues to play a central role in modern computing. Virtually every programming language uses ASCII characters for its syntax, with keywords, operators, and identifiers all composed from the basic ASCII character set. File formats like JSON, CSV, XML, and HTML are fundamentally ASCII-based, using ASCII characters for structural delimiters and markup tags. Network protocols such as HTTP, SMTP, and FTP use ASCII for their command vocabularies and header fields. Even binary protocols often include ASCII-readable magic numbers at the start of files to help identify file types.

In programming, ASCII values are frequently used for character manipulation, input validation, string processing, and sorting algorithms. Understanding the ASCII table helps developers write efficient code for tasks like converting between uppercase and lowercase, validating that input contains only alphanumeric characters, implementing custom sorting logic, parsing formatted text, and building lexical analyzers for compilers and interpreters. Security professionals also rely on ASCII knowledge when analyzing encoded payloads, decoding obfuscated malware, and examining network traffic at the byte level. Whether you are a beginner learning to program or an experienced developer debugging complex systems, a solid understanding of ASCII character encoding is an invaluable tool in your technical toolkit.