ASCII Table Reference: The Complete Guide to Character Codes 0–255
Master character encoding with the ASCII Table Reference tool — instant lookup of decimal, hex, octal, binary, and character values from 0 to 255, with friendly names for every control character.
Table of Contents
Every string you build, every protocol you debug, and every text file you open rests on a foundation laid in the 1960s: the American Standard Code for Information Interchange. ASCII assigns a number to every character — 65 for A, 10 for a line feed, 27 for Escape — and those numbers still show up daily in hex dumps, escape sequences, log files, and keyboard events. Yet most developers only ever memorize a handful of them and scramble for a chart whenever the rest appear.
The ASCII Table Reference eliminates that scramble. It is an interactive table covering the full standard range (0–127) and the extended range (0–255), with decimal, hex, octal, binary, and character columns side by side. Type any value in any base — or the character itself — and the table filters instantly, with human-readable names for all 33 control characters included.
Whether you are parsing a binary protocol, writing a regular expression, or teaching your first encoding lesson, this guide explains how to get the most out of the tool and why ASCII still matters in a Unicode world.
Why Use the ASCII Table Reference?
- Instant lookup in any base — Search by decimal (65), hex (0x41), octal (0101), binary (01000001), or the character itself (A). The table filters across all columns at once, so you never need to convert the value in your head first.
- Every conversion in one row — Decimal, hex, octal, binary, and the rendered character appear together, removing the need to cross-reference separate charts or run mental arithmetic.
- Control characters demystified — All 33 non-printing codes carry friendly names and labels — NUL, SOH, STX, ETX, LF, CR, ESC, DEL, and the rest — so a byte value like 0x1B immediately reads as "Escape."
- Standard and extended ranges — Toggle between the classic 7-bit table (0–127) and the full 8-bit extended table (0–255), with labels for the often-confused upper half.
- Copy-ready output — One click copies any row as tab-separated data, ready to paste into documentation, test fixtures, or a spreadsheet.
- Fast and offline — Filtering happens entirely client-side with a live character count, so the tool responds instantly and keeps working without a network connection.
Key Features
| Feature | What It Does |
|---|---|
| Live multi-column search | Filters by decimal, hex, octal, binary, or character as you type |
| Range toggle | Switch between Standard ASCII (0–127) and Extended (0–255) |
| Five data columns | Decimal, hex, octal, binary, and character shown per row |
| Control character names | Friendly labels for all 33 control codes plus extended-range labels |
| One-click copy | Copies a full row as tab-separated values |
| Instant and offline | Pure client-side filtering with a live result count |
A few details worth highlighting:
- The search box understands context. Typing 41 matches decimal 41 (the ) character), while 0x41 or hex-style input targets hex 41 (A) — so ambiguous values resolve the way you expect.
- The character count display tells you exactly how many rows match, which is handy when verifying that a range like "all printable characters" contains the 95 entries you anticipated.
- Row copy uses tab separation, making it trivial to paste results into code comments, CSV files, or teaching materials without reformatting.
How to Use
- Open the tool. Navigate to the ASCII Table Reference. The full standard table (0–127) loads immediately.
- Choose your range. Keep the Standard view for classic 7-bit ASCII, or toggle to Extended to include codes 128–255.
- Search or scroll. Type any value — decimal 10, hex 0x0A, octal 012, binary 00001010, or the character itself — and the table filters instantly. Clear the search to restore the full table.
- Read the row. Each matching row shows decimal, hex, octal, binary, the character (or its control-character name like LF for line feed), and a short description where applicable.
- Copy what you need. Click the copy button on any row to grab the tab-separated values, then paste them straight into your code, docs, or terminal notes.
Understanding ASCII
A 7-bit design. ASCII was standardized in the 1960s around a 7-bit code space: 128 codes numbered 0 through 127. That compact design fit neatly into the era's transmission hardware, and it means every ASCII character maps to a single byte with its top bit set to zero — a property that still makes ASCII the universal safe subset of modern encodings.
The 33 control characters. Codes 0–31 plus 127 are non-printing control codes, relics of teletypes, punch tape, and early terminals. They existed to operate hardware, not to display text: BEL (7) rang a physical bell, LF (10) moved the print head up one line, CR (13) returned it to the left margin, TAB (9) advanced to the next tab stop, and ESC (27) introduced escape sequences that terminals still use for colors and cursor control today. NUL (0) originally meant "do nothing," and DEL (127) punched out all holes on paper tape to erase a character. You will still meet these codes constantly — in line endings, terminal output, and protocol framing.
The printable range: 32–126. Code 32 is the space character, and 33 through 126 cover the 94 visible glyphs: digits, uppercase and lowercase Latin letters, and punctuation. Together with space, that gives 95 printable characters — the complete alphabet of C source code, email headers, URLs, and JSON syntax. Handy anchors: 0 is 48, A is 65, a is 97, and each lowercase letter sits exactly 32 above its uppercase twin.
Extended ASCII: 128–255. When 8-bit bytes became standard, the upper half of the byte was repurposed for accented letters, box-drawing glyphs, and symbols — but never standardized globally. Different vendors shipped different code pages: ISO-8859-1 (Latin-1) covers Western European languages, Windows-1252 adds typographic quotes and the euro sign, and DOS-era code pages like CP437 shipped box-drawing characters. The same byte 0xE9 can mean é in Latin-1 and something entirely different elsewhere, which is why the extended range in our table carries labels rather than a single authoritative glyph.
ASCII and Unicode. Unicode's first 128 code points are identical to ASCII, and UTF-8 encodes each of them as a single byte with the same value. In other words, every valid ASCII document is already valid UTF-8 — a backward compatibility decision that made the transition to Unicode painless and keeps ASCII knowledge directly relevant.
Practical Use Cases
Debugging Character Codes in APIs and Parsers
Hex dumps and log escapes are full of raw code values. Seeing 0x0D 0x0A in an HTTP capture? That is CR LF, the mandatory line ending in HTTP and email. A CSV parser choking on mystery bytes often turns out to be a stray NUL (0) or a Windows CR (13) leaking into Unix-oriented data. With the table open, you can translate any byte in a hex dump or any \u0007-style JSON escape in seconds and pinpoint exactly what your parser swallowed.
Writing Regex and Escape Sequences
Regular expressions and string literals lean on numeric escapes: \x41 for A, \101 in octal, \t, \n, and \r for codes 9, 10, and 13. The table makes it easy to build character classes precisely — for example, [\x20-\x7E] matches exactly the 95 printable ASCII characters, a common pattern for input validation. Look up the boundary codes, copy them, and drop them into your pattern with confidence.
Understanding Keyboard Input and Key Codes
Browser keyboard events expose numeric codes with deep ASCII roots: Enter is 13 (CR), Escape is 27 (ESC), Tab is 9, and Backspace is 8. When legacy keyCode values or charCode numbers appear in event handlers or terminal input libraries, the table translates them instantly — and explains why "Enter" and "carriage return" share a number.
Teaching and Learning Character Encoding
For students, ASCII is the gentlest entry point into encoding, binary, and number bases. The tool doubles as a classroom aid: convert A to binary (01000001) to show how bits become text, demonstrate why a − A = 32, or assign exercises that jump between decimal, hex, octal, and binary representations. The one-click copy makes building worksheets painless.
Best Practices
- Default to UTF-8, rely on ASCII as the safe subset. Any byte below 128 is identical in both, so keep protocols, identifiers, and wire formats within ASCII when maximum compatibility matters.
- Know your line endings. LF (10) on Unix and macOS, CR LF (13 + 10) on Windows — mixing them silently breaks scripts, diffs, and parsers.
- Never assume what 128–255 means. Always identify the code page (Latin-1, Windows-1252, CP437) before interpreting extended bytes; the same value renders differently across encodings.
- Use hex when debugging. Hex maps one-to-one onto bytes (0x41 is instantly recognizable as a byte), which is why hex dumps, protocol specs, and escape sequences favor it.
- Sanitize control characters in data pipelines. Strip or explicitly escape codes like NUL, BEL, and ESC from user input and API payloads before they reach logs, terminals, or downstream parsers.
- Keep the table handy offline. Because it runs entirely client-side, you can bookmark it and keep using it on planes, in air-gapped labs, or in the field.
Start Looking Up Codes in Seconds
Stop guessing what 0x1B means or hand-converting binary to hex. Open the ASCII Table Reference, type any value in any base, and get the character, all four numeric representations, and a friendly name in one instant. It is free, works offline, and covers every code from 0 to 255 — the five-second habit that saves minutes on every debugging session.
Related Tools You Might Like
- Base Converter — Convert numbers between decimal, hex, octal, and binary, the perfect companion for ASCII code arithmetic.
- Regex Tester — Test patterns live, including hex and octal escape sequences built from ASCII values.
- HTTP Status Lookup — Instant reference for HTTP status codes, another numeric language every developer speaks daily.
Happy encoding!