The ASCII table is the original character-encoding standard that maps the numbers 0 through 127 to the letters, digits, punctuation marks, and invisible control codes that every computer still understands today. This page gives you the complete table β decimal, hexadecimal, octal, and binary side by side with each character and its plain-English description β plus a converter that turns any character into its codes, or any code back into its character, instantly.
We built this ASCII table as a free reference tool because Arb Digital's own engineers reach for one constantly when debugging encoding issues, writing regular expressions, or explaining a weird character showing up in a client's form submissions. It runs entirely in your browser, with no signup and no data ever leaving your machine.
What This ASCII Table Does
Enter a single character in the converter box and it returns the decimal, hexadecimal, octal, and binary representation of that character instantly. Enter a number instead β decimal like 65, hex like 0x41, or an octal-looking value β and it returns the matching character along with its name. Below the converter sits the full 128-row reference table covering every ASCII code from 0 (NUL) to 127 (DEL), and you can filter that table live by typing any part of a character, code, or description into the search box. There is no page reload, no external API call, and no lag β everything is computed with a small embedded lookup table baked directly into the page's JavaScript.
This matters because ASCII, despite being over 60 years old, is still the foundation almost every modern encoding builds on. UTF-8 β the encoding behind virtually every website, JSON payload, and email on the internet β is fully backward-compatible with ASCII for the first 128 code points. That means every character in this ASCII table means exactly the same thing in UTF-8, which is one reason ASCII knowledge never really goes out of date for developers.
How to Use the ASCII Table
- Convert a character. Type a single letter, digit, or symbol into the input box and click Convert. The result panel shows its decimal, hex, octal, and binary values.
- Convert a code. Type a decimal number (like
97), a hex value with a0xprefix (like0x61), or paste a code you found elsewhere, and click Convert to see the matching character and its name. - Browse the full table. Scroll the reference table below the converter to see all 128 ASCII codes at once, each with its decimal, hex, octal, binary, character, and description.
- Search or filter. Type into the search box above the table to instantly narrow it down β search "tab" to find the tab character, search "0x" plus a hex digit, or search a decimal number.
- Handle control codes. For codes 0β31 and 127, which have no visible glyph, the table and converter show the standard three-letter abbreviation (like
LFfor line feed orESCfor escape) instead of a blank square.
How ASCII Encoding Actually Works
ASCII (American Standard Code for Information Interchange) assigns every character a 7-bit number between 0 and 127. That 7-bit range is exactly why the table stops at 127 rather than going up to 255 β the eighth bit was historically reserved for parity checking or later repurposed by extended, non-standard 8-bit encodings. The specification was first published in 1963 and standardized by ANSI, and it's documented today by organizations including the MDN Web Docs glossary, which explains its ongoing relationship to Unicode and UTF-8.
The 128 codes split into two clean halves. Codes 0 through 31, plus code 127, are non-printable control codes β things like CR (carriage return), LF (line feed), TAB, BEL (the terminal bell), and ESC (escape, used to start ANSI terminal color codes). These exist because ASCII was designed in an era of teletypewriters and needed a way to instruct hardware to do things β ring a bell, advance a line, feed a new page β not just display a symbol. Codes 32 through 126 are the printable characters: space, digits 0β9, uppercase and lowercase letters, and every common punctuation mark on a US keyboard.
Converting between number systems is straightforward binary math. Decimal 65 is the letter A. In hexadecimal that's 0x41, because 65 = 4Γ16 + 1. In octal it's 101, because 65 = 1Γ64 + 0Γ8 + 1. In binary it's 01000001, an 8-bit representation with a leading zero since ASCII only needs 7 bits. Every column in this table represents the exact same underlying value β just written in a different base, which is why programmers reach for hex and octal so often: they map more cleanly onto binary byte boundaries than decimal does.
Why Control Codes Still Matter Today
It's tempting to think control codes are historical trivia, but several of them run your development environment right now. Line feed (code 10) is the newline character on Linux and macOS; carriage return (code 13) combined with line feed is the Windows newline pair, which is exactly why files sometimes show stray ^M characters when moved between operating systems β that's carriage return rendering visibly because the receiving tool doesn't expect it. Escape (code 27) kicks off every ANSI terminal color and cursor-movement sequence, which is how your terminal renders colored text, progress bars, and cursor repositioning. Tab (code 9) is the actual tab character your editor may be silently converting to spaces. Null (code 0) terminates C-style strings and shows up constantly in binary file formats and low-level protocol parsing. Understanding these codes explains a lot of "invisible bug" behavior β a file that looks identical in two editors but fails a byte-for-byte diff almost always differs in its control characters, line-ending style, or trailing whitespace.
ASCII, Unicode, and UTF-8 β How They Relate
A common point of confusion is whether ASCII is obsolete now that Unicode exists. It isn't, because Unicode was deliberately designed to keep ASCII as its first 128 code points. UTF-8, the dominant Unicode encoding on the web, encodes those first 128 characters as a single byte with the exact same bit pattern as classic ASCII. That means any valid ASCII text file is automatically also a valid UTF-8 file β no conversion required. Where things diverge is beyond code point 127: UTF-8 uses multi-byte sequences to represent everything else, from accented Latin letters to emoji to CJK scripts, while classic 8-bit "extended ASCII" encodings like Latin-1 (ISO-8859-1) and Windows-1252 diverge from UTF-8 immediately after byte 127, which is the real root cause of the classic "mojibake" garbled-text bug when a file's declared encoding doesn't match how it's actually being read.
Practical Developer Uses for This Table
- Regular expressions. Character classes and escape sequences like
\x41orAreference exact ASCII/Unicode code points β this table lets you look up the hex value for any character you need to match. - Debugging file encoding issues. When a text diff shows unexpected characters, comparing byte values against this table quickly reveals whether you're looking at a line-ending mismatch, a stray control character, or a genuine encoding mismatch.
- Keyboard shortcuts and terminal escape sequences. Many terminal and hotkey definitions reference control codes by number (Ctrl+C sends code 3, ETX) rather than by name.
- Parsing binary or legacy protocol data. Older network protocols, serial communication formats, and file headers frequently use specific control bytes as delimiters or markers.
- Teaching and learning number systems. Converting the same value between decimal, hex, octal, and binary side by side is one of the clearest ways to internalize how positional number systems work.
Arb Digital builds fast, well-structured websites and technical content β explore the rest of our free developer tools below, or reach out if you need a hand with a bigger project.
Contact Arb Digital All Free ToolsCommon Mistakes to Avoid
- Confusing extended ASCII with standard ASCII. Standard ASCII is strictly 0β127. Anything above 127 (like Windows-1252's curly quotes) is a separate, non-standard extension and not part of this table.
- Assuming control codes print as blank spaces. They don't display at all in most contexts β they trigger an action (like a newline) or are simply invisible, which is different from the visible space character at code 32.
- Mixing up decimal and hex when reading documentation. A value like
41is a completely different character depending on whether it's decimal (the ')' character) or hex (the 'A' character) β always check which base a source is using. - Forgetting the CRLF vs LF distinction. Copying a file between Windows and Unix-based systems without normalizing line endings frequently introduces subtle bugs, especially in shell scripts and shebang lines.
- Treating ASCII as sufficient for international text. ASCII has no accented letters, no non-Latin scripts, and no emoji β for anything beyond basic English text and code, you need full Unicode/UTF-8 support.
Related Free Tools From Arb Digital
Pair this ASCII table with our HTTP Status Code Lookup for another everyday developer reference, or our MIME Type Lookup when you're dealing with file types and content headers. If you're working with text encoding more broadly, try the Base64 Encoder/Decoder or the Case Converter. Curious about a browser's raw identity string? Check out the User-Agent Parser. You can find every free utility we've built in the free online tools hub.
Frequently Asked Questions
The ASCII table maps the numbers 0β127 to the letters, digits, punctuation, and control codes that computers use to store and transmit text. It's used for debugging encoding issues, writing regular expressions, understanding terminal escape sequences, and converting between number systems.
ASCII is a 7-bit encoding, so it only defines 128 values (0β127). The eighth bit in a byte was historically used for parity checking or later repurposed by separate 8-bit "extended ASCII" encodings, which are not part of the original ASCII standard.
Control characters are the non-printable codes 0β31 plus code 127. They don't display a visible symbol; instead they trigger actions like a new line, a tab, a carriage return, or the terminal bell. They exist for historical reasons tied to teletypewriter hardware.
Yes. UTF-8, the dominant encoding on the web, is fully backward-compatible with ASCII for its first 128 characters, so classic ASCII text is automatically valid UTF-8. ASCII knowledge remains essential for debugging encoding and text-processing issues.
Type the character into the converter box on this page and click Convert β it instantly shows the decimal, hexadecimal, octal, and binary codes for that character.
ASCII defines only 128 characters, covering basic English letters, digits, and punctuation. Unicode defines over a million code points, covering virtually every writing system and symbol in use today, while still including ASCII as its first 128 values for compatibility.
This ASCII table runs entirely in your browser β no data is sent to any server, and no signup is required.