ASCII Table Viewer

Complete ASCII character table with decimal, hex, binary, and HTML codes

ASCII Table Viewer

Complete ASCII character table with decimal, hex, binary, and HTML codes

Control Characters

Range: 0-31, 127

Characters: 33

Printable Characters

Range: 32-126

Characters: 95

Extended ASCII

Range: 128-255

Characters: 128

DecHexBinCharHTMLDescription
00x0000000000[NULL (Null character)]NULL (Null character)
10x0100000001[SOH (Start of Heading)]SOH (Start of Heading)
20x0200000010[STX (Start of Text)]STX (Start of Text)
30x0300000011[ETX (End of Text)]ETX (End of Text)
40x0400000100[EOT (End of Transmission)]EOT (End of Transmission)
50x0500000101[ENQ (Enquiry)]ENQ (Enquiry)
60x0600000110[ACK (Acknowledge)]ACK (Acknowledge)
70x0700000111[BEL (Bell)]BEL (Bell)
80x0800001000[BS (Backspace)]BS (Backspace)
90x0900001001[HT (Horizontal Tab)]HT (Horizontal Tab)
100x0A00001010[LF (Line Feed)]LF (Line Feed)
110x0B00001011[VT (Vertical Tab)]VT (Vertical Tab)
120x0C00001100[FF (Form Feed)]FF (Form Feed)
130x0D00001101[CR (Carriage Return)]CR (Carriage Return)
140x0E00001110[SO (Shift Out)]SO (Shift Out)
150x0F00001111[SI (Shift In)]SI (Shift In)
160x1000010000[DLE (Data Link Escape)]DLE (Data Link Escape)
170x1100010001[DC1 (Device Control 1)]DC1 (Device Control 1)
180x1200010010[DC2 (Device Control 2)]DC2 (Device Control 2)
190x1300010011[DC3 (Device Control 3)]DC3 (Device Control 3)
200x1400010100[DC4 (Device Control 4)]DC4 (Device Control 4)
210x1500010101[NAK (Negative Acknowledge)]NAK (Negative Acknowledge)
220x1600010110[SYN (Synchronous Idle)]SYN (Synchronous Idle)
230x1700010111[ETB (End of Transmission Block)]ETB (End of Transmission Block)
240x1800011000[CAN (Cancel)]CAN (Cancel)
250x1900011001[EM (End of Medium)]EM (End of Medium)
260x1A00011010[SUB (Substitute)]SUB (Substitute)
270x1B00011011[ESC (Escape)]ESC (Escape)
280x1C00011100[FS (File Separator)]FS (File Separator)
290x1D00011101[GS (Group Separator)]GS (Group Separator)
300x1E00011110[RS (Record Separator)]RS (Record Separator)
310x1F00011111[US (Unit Separator)]US (Unit Separator)
320x2000100000  Space
330x2100100001!!Printable character
340x2200100010""Printable character
350x2300100011##Printable character
360x2400100100$$Printable character
370x2500100101%%Printable character
380x2600100110&&Printable character
390x2700100111''Printable character
400x2800101000((Printable character
410x2900101001))Printable character
420x2A00101010**Printable character
430x2B00101011++Printable character
440x2C00101100,,Printable character
450x2D00101101--Printable character
460x2E00101110..Printable character
470x2F00101111//Printable character
480x300011000000Printable character
490x310011000111Printable character
500x320011001022Printable character
510x330011001133Printable character
520x340011010044Printable character
530x350011010155Printable character
540x360011011066Printable character
550x370011011177Printable character
560x380011100088Printable character
570x390011100199Printable character
580x3A00111010::Printable character
590x3B00111011;&#59;Printable character
600x3C00111100<&#60;Printable character
610x3D00111101=&#61;Printable character
620x3E00111110>&#62;Printable character
630x3F00111111?&#63;Printable character
640x4001000000@&#64;Printable character
650x4101000001A&#65;Printable character
660x4201000010B&#66;Printable character
670x4301000011C&#67;Printable character
680x4401000100D&#68;Printable character
690x4501000101E&#69;Printable character
700x4601000110F&#70;Printable character
710x4701000111G&#71;Printable character
720x4801001000H&#72;Printable character
730x4901001001I&#73;Printable character
740x4A01001010J&#74;Printable character
750x4B01001011K&#75;Printable character
760x4C01001100L&#76;Printable character
770x4D01001101M&#77;Printable character
780x4E01001110N&#78;Printable character
790x4F01001111O&#79;Printable character
800x5001010000P&#80;Printable character
810x5101010001Q&#81;Printable character
820x5201010010R&#82;Printable character
830x5301010011S&#83;Printable character
840x5401010100T&#84;Printable character
850x5501010101U&#85;Printable character
860x5601010110V&#86;Printable character
870x5701010111W&#87;Printable character
880x5801011000X&#88;Printable character
890x5901011001Y&#89;Printable character
900x5A01011010Z&#90;Printable character
910x5B01011011[&#91;Printable character
920x5C01011100\&#92;Printable character
930x5D01011101]&#93;Printable character
940x5E01011110^&#94;Printable character
950x5F01011111_&#95;Printable character
960x6001100000`&#96;Printable character
970x6101100001a&#97;Printable character
980x6201100010b&#98;Printable character
990x6301100011c&#99;Printable character
1000x6401100100d&#100;Printable character
1010x6501100101e&#101;Printable character
1020x6601100110f&#102;Printable character
1030x6701100111g&#103;Printable character
1040x6801101000h&#104;Printable character
1050x6901101001i&#105;Printable character
1060x6A01101010j&#106;Printable character
1070x6B01101011k&#107;Printable character
1080x6C01101100l&#108;Printable character
1090x6D01101101m&#109;Printable character
1100x6E01101110n&#110;Printable character
1110x6F01101111o&#111;Printable character
1120x7001110000p&#112;Printable character
1130x7101110001q&#113;Printable character
1140x7201110010r&#114;Printable character
1150x7301110011s&#115;Printable character
1160x7401110100t&#116;Printable character
1170x7501110101u&#117;Printable character
1180x7601110110v&#118;Printable character
1190x7701110111w&#119;Printable character
1200x7801111000x&#120;Printable character
1210x7901111001y&#121;Printable character
1220x7A01111010z&#122;Printable character
1230x7B01111011{&#123;Printable character
1240x7C01111100|&#124;Printable character
1250x7D01111101}&#125;Printable character
1260x7E01111110~&#126;Printable character
1270x7F01111111[DEL (Delete)]DEL (Delete)
1280x8010000000ۂ
1290x8110000001ü
1300x8210000010‚é
1310x8310000011ĉ
1320x8410000100„ä
1330x8510000101…à
1340x8610000110†å
1350x8710000111‡ç
1360x8810001000ˆê
1370x8910001001‰ë
1380x8A10001010Šè
1390x8B10001011‹ï
1400x8C10001100Δ
1410x8D10001101ì
1420x8E10001110ŽÄ
1430x8F10001111Å
1440x9010010000É
1450x9110010001‘æ
1460x9210010010’Æ
1470x9310010011“ô
1480x9410010100”ö
1490x9510010101•ò
1500x9610010110–û
1510x9710010111—ù
1520x9810011000˜ÿ
1530x9910011001™Ö
1540x9A10011010šÜ
1550x9B10011011ݢ
1560x9C10011100ϣ
1570x9D10011101¥
1580x9E10011110ž₧
1590x9F10011111Ÿƒ
1600xA010100000 á
1610xA110100001¡í
1620xA210100010¢ó
1630xA310100011£ú
1640xA410100100¤ñ
1650xA510100101¥Ñ
1660xA610100110¦ª
1670xA710100111§º
1680xA810101000¨¿
1690xA910101001©⌐
1700xAA10101010ª¬
1710xAB10101011«½
1720xAC10101100¬¼
1730xAD10101101­¡
1740xAE10101110®«
1750xAF10101111¯»
1760xB010110000°░
1770xB110110001±▒
1780xB210110010²▓
1790xB310110011³│
1800xB410110100´┤
1810xB510110101µ╡
1820xB610110110╢
1830xB710110111·╖
1840xB810111000¸╕
1850xB910111001¹╣
1860xBA10111010º║
1870xBB10111011»╗
1880xBC10111100¼╝
1890xBD10111101½╜
1900xBE10111110¾╛
1910xBF10111111¿┐
1920xC011000000À└
1930xC111000001Á┴
1940xC211000010Â┬
1950xC311000011Ã├
1960xC411000100Ä─
1970xC511000101Å┼
1980xC611000110Æ╞
1990xC711000111Ç╟
2000xC811001000È╚
2010xC911001001É╔
2020xCA11001010Ê╩
2030xCB11001011Ë╦
2040xCC11001100Ì╠
2050xCD11001101Í═
2060xCE11001110Î╬
2070xCF11001111Ï╧
2080xD011010000Ð╨
2090xD111010001Ñ╤
2100xD211010010Ò╥
2110xD311010011Ó╙
2120xD411010100Ô╘
2130xD511010101Õ╒
2140xD611010110Ö╓
2150xD711010111×╫
2160xD811011000Ø╪
2170xD911011001Ù┘
2180xDA11011010Ú┌
2190xDB11011011Û█
2200xDC11011100Ü▄
2210xDD11011101Ý▌
2220xDE11011110Þ▐
2230xDF11011111ß▀
2240xE011100000àα
2250xE111100001áß
2260xE211100010âΓ
2270xE311100011ãπ
2280xE411100100äΣ
2290xE511100101åσ
2300xE611100110æµ
2310xE711100111çτ
2320xE811101000èΦ
2330xE911101001éΘ
2340xEA11101010êΩ
2350xEB11101011ëδ
2360xEC11101100ì∞
2370xED11101101íφ
2380xEE11101110îε
2390xEF11101111ï∩
2400xF011110000ð≡
2410xF111110001ñ±
2420xF211110010ò≥
2430xF311110011ó≤
2440xF411110100ô⌠
2450xF511110101õ⌡
2460xF611110110ö÷
2470xF711110111÷≈
2480xF811111000ø°
2490xF911111001ù∙
2500xFA11111010ú·
2510xFB11111011û√
2520xFC11111100üⁿ
2530xFD11111101ý²
2540xFE11111110þ■
2550xFF11111111ÿ 
Showing 256 of 256 ASCII characters
Common ASCII Values
Control:
NULL: 0
TAB: 9
LF: 10
CR: 13
ESC: 27
Printable:
Space: 32
0-9: 48-57
A-Z: 65-90
a-z: 97-122
Symbols:
!: 33
@: 64
#: 35
$: 36
%: 37
Special:
©: 169
®: 174
€: 128
£: 163
¥: 165

ASCII Table Viewer – Complete Character Encoding Reference

Our ASCII Table Viewer provides a comprehensive reference for all 256 ASCII characters, including control codes, printable characters, and extended ASCII. This essential tool is perfect for programmers, developers, students, and anyone working with character encoding.

Understanding ASCII Encoding

ASCII (American Standard Code for Information Interchange) is the foundation of character encoding in computing. Developed in the 1960s, it uses 7 bits to represent 128 characters, with an 8th bit used for extended ASCII (128-255) in modern implementations.

Control Characters (0-31, 127)
  • Non-printable characters
  • Device control and formatting
  • Includes NULL, TAB, LF, CR
  • 33 characters total
Printable Characters (32-126)
  • Space, letters, digits
  • Punctuation and symbols
  • 95 characters total
  • Typical keyboard characters
Extended ASCII (128-255)
  • System-dependent
  • Accented letters, symbols
  • Box drawing, special chars
  • 128 characters total

Common ASCII Codes Reference

DecimalHexCharacterDescriptionCommon Uses
000NULNull characterC string terminator
909TABHorizontal tabText alignment, indentation
100ALFLine feedNew line (Unix/Mac)
130DCRCarriage returnNew line (Windows with LF)
3220SpaceSpace characterWord separation
48300Digit zeroNumbers, calculations
6541AUppercase AText, identifiers
9761aLowercase aText, variables

Programming with ASCII

Different programming languages handle ASCII codes in various ways:

// JavaScript
'A'.charCodeAt(0);          // 65
String.fromCharCode(65);    // 'A'
'\x41';                     // 'A' (hex)
'\101';                     // 'A' (octal)

// Python
ord('A')                    # 65
chr(65)                     # 'A'
'\x41'                     # 'A'

// Java
(int) 'A'                   // 65
(char) 65                   // 'A'
"\u0041"                   // 'A' (Unicode)

// C/C++
'A'                         // 65 (char to int)
(char)65                    // 'A' (int to char)
'\x41'                     // 'A'

// PHP
ord('A');                   // 65
chr(65);                    // 'A'

ASCII in Different Number Systems

ASCII codes can be represented in multiple number systems:

CharacterDecimalHexadecimalBinaryOctalHTML Entity
A654101000001101&#65; or &#x41;
a976101100001141&#97; or &#x61;
048300011000060&#48; or &#x30;
@644001000000100&#64; or &#x40;

Bitwise Architecture: The Mathematical Elegance of ASCII

ASCII was engineered by Bob Bemer and the ASA X3.4 committee with extraordinary mathematical foresight. The bit patterns of ASCII characters were designed to optimize binary computation and hardware logic circuits on early microchips:

  • Case Conversion via Single Bit Flipping: Uppercase letters and their lowercase counterparts differ by exactly one bit—Bit 5 (value 32, or 0x20). For example, uppercase 'A' is binary 01000001 (decimal 65), whereas lowercase 'a' is binary 01100001 (decimal 97). To convert any ASCII character to lowercase in assembly or high-performance C, a CPU simply executes a single bitwise OR: char | 0x20. Conversely, converting to uppercase requires clearing that bit: char & ~0x20.
  • Instant Integer Digit Extraction: The decimal digits '0' through '9' span hexadecimal 0x30 through 0x39 (binary 00110000 to 00111001). An engine can extract the literal numeric integer value of any digit character without complex lookup tables by masking away the upper nibble: char & 0x0F.
  • Natural Lexicographical Sorting: Numbers precede uppercase letters, and uppercase letters precede lowercase letters. Because character binary codes increase monotonically along alphabetical ordering, string sorting algorithms require simple unsigned integer comparisons.

Deep Dive: The 33 ASCII Control Codes (0–31 & 127)

Over 25% of the standard 7-bit ASCII table consists of non-printable control characters designed for electromechanical teleprinters and serial communications:

Code / HexAcronymFormal NameTelecommunication Role & Modern Computing Function
0 / 0x00NULNull CharacterOriginally punched blank tape on teletypes. Today, serves as the fundamental null-terminator for C/C++ string arrays and pointer safety.
4 / 0x04EOTEnd of TransmissionSignals remote modem to hang up line. In UNIX terminal shells, typing Ctrl+D sends EOT to signal EOF (End of File).
7 / 0x07BELBellPhysically rang a mechanical bell on teleprinters. Today, triggers the default operating system alert chime or terminal visual flash.
8 / 0x08BSBackspaceMoves the active printing head back one position. Used by terminal line disciplines for active cursor editing.
27 / 0x1BESCEscapeIntroduces control sequences. Standardized under ANSI X3.64 / ECMA-48 for terminal escape codes controlling text coloring, bolding, and cursor jumps.
127 / 0x7FDELDeleteOn 7-track paper tape, punching all 7 holes produced binary 1111111, effectively overwriting and obliterating any erroneous character.

Extended ASCII & IBM PC Code Page 437 (Box Drawing)

Standard ASCII utilizes only 7 bits of an 8-bit byte, leaving the upper range (128–255) undefined. In 1981, IBM engineers populated this range in the original IBM PC BIOS ROM with Code Page 437.

This extended charset included single and double box-drawing glyphs (characters 179 through 218: │, ┤, ┐, └, ┴, ┬, ├, ─, ┼), block fills, and mathematical operators. These characters allowed developers to build sophisticated graphical-looking Text User Interfaces (TUIs) inside pure MS-DOS command prompts—spawning iconic software suites like Norton Commander, Lotus 1-2-3, and early ASCII-rendered roguelike games such as Rogue and NetHack. Today, terminal utilities like htop, docker ps, and CLI tables continue this tradition using UTF-8 box-drawing equivalents.

Security Pitfalls: Null Byte Injection & ASCII Smuggling

Security researchers and backend developers must remain vigilant regarding ASCII edge cases:

  • Null Byte Poisoning (CVE-2006-7243 & historic PHP bugs): In languages where strings are length-prefixed (like PHP or Java), a string could contain "invoice.pdf\0.php". When passed down to underlying C-runtime filesystem system calls, C truncates the string at the NUL (0x00) byte, opening "invoice.pdf" while bypassing extension verification checks.
  • CRLF Injection (HTTP Response Splitting): Injecting unvalidated \r\n (0x0D 0x0A) into HTTP response headers allows attackers to split responses, forge session cookies, and orchestrate cross-site scripting (XSS) cache poisoning.
  • Escape Sequence Injection in Logs: Writing unsanitized user inputs to server log files can inject terminal escape sequences (\033[2J) that clear terminal screens or hide malicious intrusions from sysadmins reading terminal output.

Historical Context and Evolution

ASCII was first published as a standard in 1963 and revised in 1967. Key developments:

  • 1963: First ASCII standard published (ASA X3.4-1963)
  • 1967: Major revision with lowercase letters added
  • 1986: ANSI X3.4-1986 (current US version)
  • 1991: ISO/IEC 646 international standard based on ASCII
  • 2000s: Largely superseded by UTF-8/Unicode but remains fundamental

ASCII vs Unicode Comparison

AspectASCIIUnicode (UTF-8)
Year Introduced19631991
Character Range0-127 (7-bit)0-1,114,111 (21-bit)
Bytes per Character1 (fixed)1-4 (variable)
Backward CompatibleN/AYes (ASCII = UTF-8)
Language SupportEnglish onlyAll languages
Common UseLegacy systems, network protocolsModern web, operating systems, cloud APIs

Practical Applications Across Engineering Disciplines

Compiler Lexing & String Parsing

Lexers tokenize source code by comparing character codes directly against ASCII intervals (e.g. c >= 48 && c <= 57 for numeric literals), bypassing costly regular expression engines.

Low-Level Serial & IoT Communication

Microcontrollers and IoT sensor networks (RS-232, UART, I2C) transmit sensor telemetry and AT modem commands using lightweight 7-bit ASCII packet streams.

Essential Best Practices When Working with ASCII

  1. Always remember that ASCII codes 0–31 and 127 are non-printable control characters that require sanitization.
  2. Adopt UTF-8 for all modern database schemas and web endpoints to guarantee global international language support.
  3. Be conscious of platform line endings (Unix LF 0x0A vs. Windows CRLF 0x0D 0x0A) in automated continuous integration workflows.
  4. Always test string processing functions against boundary conditions (null bytes, EOF tokens, carriage returns).
  5. Filter terminal escape sequences before logging untrusted user strings to protect server monitoring dashboards.

Frequently Asked Questions (FAQs)

ASCII (American Standard Code for Information Interchange) is a character encoding standard that represents 128 characters (0-127) including English letters (A-Z, a-z), digits (0-9), punctuation marks, and control characters. Each character has a unique 7-bit binary representation.

ASCII control characters (0-31 and 127) are non-printable characters used to control devices and format text. Examples include: NULL (0), TAB (9), LINE FEED (10), CARRIAGE RETURN (13), ESCAPE (27), and DELETE (127). These characters don't display as visible symbols.

Extended ASCII (128-255) includes additional characters beyond the standard 128. These vary by system but typically include accented letters, currency symbols, mathematical symbols, box-drawing characters, and other special symbols. Unlike standard ASCII, extended ASCII is not standardized across all systems.

In most programming languages, you can use ASCII codes directly: 1) Use decimal values: char(65) in Python, String.fromCharCode(65) in JavaScript, 2) Use hexadecimal: 0x41, 3) Use octal: 0101, 4) Use escape sequences: \x41 or \u0041. Our table shows all representations.

ASCII is a 7-bit encoding with 128 characters for English. Unicode is a universal standard supporting over 149,000 characters from all writing systems worldwide. ASCII is a subset of Unicode (U+0000 to U+007F). Unicode includes ASCII plus thousands of additional characters.

Important ASCII values include: Space (32), Digits 0-9 (48-57), Uppercase A-Z (65-90), Lowercase a-z (97-122), Newline (10), Tab (9), Carriage Return (13), Escape (27), Delete (127). These are frequently used in programming and data processing.

On Windows: Hold Alt and type the decimal code on numeric keypad (e.g., Alt+65 for A). On Mac: Use Option key combinations. In programming: Use escape sequences or character code functions. Printable ASCII characters (32-126) can be typed directly from keyboard.

ASCII NULL (0) is a control character meaning 'null' or 'no character'. It's used as a string terminator in C and C++ (null-terminated strings), as a padding character in data transmission, and to indicate 'no data' in various contexts. It's different from the digit '0' (ASCII 48).

Standard ASCII (0-127) cannot represent accented characters. Extended ASCII (128-255) includes some accented characters, but these vary by system (code page). For reliable representation of accented characters, use UTF-8 (Unicode) encoding instead of ASCII.

ASCII art is creating images using ASCII characters. It was popular in early computing when graphical displays were limited. Today it's used for: 1) Text-based user interfaces, 2) Email signatures, 3) Source code comments, 4) Retro computing aesthetics, 5) Creating images in text-only environments.

Explore Related Tools

Hand-picked utilities and calculators related to this tool.

Binary Converter Tools