Complete 0–127 ASCII table: decimal, hex, octal, binary, character, name, HTML entity and escape — control codes explained, click to copy, fully searchable.
- Runs locally
- Category Developer & DevOps
- Best for Formatting, validating, shrinking, or inspecting code-adjacent text.
Control characters (0–31) (32)
| Dec | Hex | Oct | Bin | Char | Name | HTML | Esc |
|---|---|---|---|---|---|---|---|
| NullString terminator in C; "no character". Often used as a sentinel/padding byte. | — | ||||||
| Start of HeadingMarks the start of a message header in old transmission protocols. | — | — | |||||
| Start of TextMarks the start of the message body, after the header. | — | — | |||||
| End of TextMarks the end of the message body. Ctrl+C sends this — hence "interrupt". | — | — | |||||
| End of TransmissionNo more data is coming. Ctrl+D in a Unix shell signals end-of-input. | — | — | |||||
| EnquiryAsks the other end "are you there / who are you?". | — | — | |||||
| AcknowledgePositive response — "received OK". | — | — | |||||
| BellRings the terminal bell (or flashes the screen). Still works in most terminals. | — | ||||||
| BackspaceMoves the cursor one position back. Used for deleting the previous char. | — | ||||||
| Horizontal TabThe Tab key. Advances to the next tab stop. | — | ||||||
| Line FeedMoves down one line. The Unix/macOS newline. In C it is "\n". | — | ||||||
| Vertical TabAdvances to the next vertical tab stop. Rarely used today. | — | ||||||
| Form FeedEjects the page on a printer; clears screen in some terminals. | — | ||||||
| Carriage ReturnReturns the cursor to column 0 without moving down. Windows uses CR+LF. | — | ||||||
| Shift OutSwitches to an alternate character set. | — | — | |||||
| Shift InSwitches back to the standard character set. | — | — | |||||
| Data Link EscapeTreats the following bytes as protocol control rather than data. | — | — | |||||
| Device Control 1 (XON)XON — resume transmission. Ctrl+Q in flow control. | — | — | |||||
| Device Control 2Device-specific control signal. | — | — | |||||
| Device Control 3 (XOFF)XOFF — pause transmission. Ctrl+S in flow control (the "frozen terminal"). | — | — | |||||
| Device Control 4Device-specific control signal. | — | — | |||||
| Negative AcknowledgeNegative response — "not received / resend". | — | — | |||||
| Synchronous IdleFills idle time on a synchronous link to keep clocks aligned. | — | — | |||||
| End of Transmission BlockMarks the end of a block of data within a larger transmission. | — | — | |||||
| CancelThe preceding data is in error or should be ignored. | — | — | |||||
| End of MediumPhysical end of the usable medium (e.g. end of tape). | — | — | |||||
| SubstituteReplaces an invalid/garbled character. DOS uses it as EOF (Ctrl+Z). | — | — | |||||
| EscapeStarts an escape sequence — the engine behind ANSI terminal colors. | — | ||||||
| File SeparatorCoarsest delimiter: separates files within a stream. | — | — | |||||
| Group SeparatorSeparates groups of records. | — | — | |||||
| Record SeparatorSeparates records within a group. | — | — | |||||
| Unit SeparatorFinest delimiter: separates fields within a record. | — | — |
Printable characters (32–126) (95)
| Dec | Hex | Oct | Bin | Char | Name | HTML | Esc |
|---|---|---|---|---|---|---|---|
| SpaceThe plain space, U+0020. Separates words and is the default token delimiter in shells and most file formats. | — | — | |||||
| Exclamation markExclamation mark. "Not" in C-family languages (!= , !flag); history expansion in bash (!! reruns the last command); shebang lead with # (#!). | — | — | |||||
| Double quoteStraight double quote. Wraps string literals; in the shell it groups text while still allowing $variable and command expansion. | — | ||||||
| Number sign (hash)Hash / pound / octothorpe. Comment marker in shell, Python, and Ruby; CSS id selector; the # in a URL marks the fragment. | — | — | |||||
| Dollar signDollar sign. Variable sigil in the shell, PHP, and Perl ($name); end-of-line anchor in regular expressions; the regex/template "$1" backreference. | — | — | |||||
| Percent signPercent sign. Modulo operator (a % b); printf format lead (%d, %s); URL percent-encoding (%20 is a space). | — | — | |||||
| AmpersandAmpersand. Bitwise AND and (doubled) logical AND; runs a shell command in the background; HTML entities begin with it (&). | — | ||||||
| ApostropheStraight single quote / apostrophe. Char literals in C; in the shell it quotes text literally with no variable expansion at all. | — | ||||||
| Left parenthesisLeft parenthesis. Opens a group: function calls, math grouping, and capturing groups in regular expressions. | — | — | |||||
| Right parenthesisRight parenthesis. Closes the group opened by "(". | — | — | |||||
| AsteriskAsterisk. Multiplication; the C pointer/dereference operator; the glob wildcard matching any run of characters (*.txt). | — | — | |||||
| Plus signPlus sign. Addition and (in many languages) string concatenation; "one or more" quantifier in regular expressions. | — | — | |||||
| CommaComma. Separates list items, function arguments, and the fields of a CSV row. | — | — | |||||
| Hyphen-minusHyphen-minus. Subtraction and negation; the lead character of command-line flags (-v, --verbose); a range inside regex character classes ([a-z]). | — | — | |||||
| Period (dot)Period / full stop / dot. Member access (obj.field); the current directory in a path; "any single character" in regular expressions. | — | — | |||||
| SlashSlash. Division; the path separator on Unix; the lead of HTTP paths and of // line comments. | — | — | |||||
| Digit 0 | — | — | |||||
| Digit 1 | — | — | |||||
| Digit 2 | — | — | |||||
| Digit 3 | — | — | |||||
| Digit 4 | — | — | |||||
| Digit 5 | — | — | |||||
| Digit 6 | — | — | |||||
| Digit 7 | — | — | |||||
| Digit 8 | — | — | |||||
| Digit 9 | — | — | |||||
| ColonColon. Key/value separator in JSON and YAML; label and slice syntax; the PATH separator on Unix (dir1:dir2). | — | — | |||||
| SemicolonSemicolon. Statement terminator in C, Java, and JavaScript; separates commands on one shell line. | — | — | |||||
| Less-than signLess-than sign. Comparison; opens an HTML/XML tag; input redirection in the shell (cmd < file). | — | ||||||
| Equals signEquals sign. Assignment; doubled (==) or tripled (===) it tests equality; the padding character in Base64. | — | — | |||||
| Greater-than signGreater-than sign. Comparison; closes an HTML/XML tag; output redirection in the shell (cmd > file). | — | ||||||
| Question markQuestion mark. The ternary operator (cond ? a : b); "zero or one" in regular expressions; the start of a URL query string. | — | — | |||||
| At signAt sign. Separates user from host in an email or SSH target; decorator lead in Python; the start of a Twitter/GitHub handle. | — | — | |||||
| Capital letter A | — | — | |||||
| Capital letter B | — | — | |||||
| Capital letter C | — | — | |||||
| Capital letter D | — | — | |||||
| Capital letter E | — | — | |||||
| Capital letter F | — | — | |||||
| Capital letter G | — | — | |||||
| Capital letter H | — | — | |||||
| Capital letter I | — | — | |||||
| Capital letter J | — | — | |||||
| Capital letter K | — | — | |||||
| Capital letter L | — | — | |||||
| Capital letter M | — | — | |||||
| Capital letter N | — | — | |||||
| Capital letter O | — | — | |||||
| Capital letter P | — | — | |||||
| Capital letter Q | — | — | |||||
| Capital letter R | — | — | |||||
| Capital letter S | — | — | |||||
| Capital letter T | — | — | |||||
| Capital letter U | — | — | |||||
| Capital letter V | — | — | |||||
| Capital letter W | — | — | |||||
| Capital letter X | — | — | |||||
| Capital letter Y | — | — | |||||
| Capital letter Z | — | — | |||||
| Left square bracketLeft square bracket. Opens an array or index; opens a character class in regular expressions ([0-9]). | — | — | |||||
| BackslashBackslash. The escape character (\n, \t); the path separator on Windows. Note this is an escape, not the division slash. | — | — | |||||
| Right square bracketRight square bracket. Closes the bracket opened by "[". | — | — | |||||
| Caret (circumflex)Caret / circumflex. Bitwise XOR; start-of-line anchor in regular expressions; negation when it leads a character class ([^0-9]). | — | — | |||||
| UnderscoreUnderscore. Word separator in snake_case identifiers; the conventional "ignore this value" placeholder; a digit group separator in some languages (1_000_000). | — | — | |||||
| Backtick (grave accent)Backtick / grave accent. Opens a Markdown code span; command substitution in the shell (legacy `cmd`); the delimiter of a JavaScript template literal. | — | — | |||||
| Small letter a | — | — | |||||
| Small letter b | — | — | |||||
| Small letter c | — | — | |||||
| Small letter d | — | — | |||||
| Small letter e | — | — | |||||
| Small letter f | — | — | |||||
| Small letter g | — | — | |||||
| Small letter h | — | — | |||||
| Small letter i | — | — | |||||
| Small letter j | — | — | |||||
| Small letter k | — | — | |||||
| Small letter l | — | — | |||||
| Small letter m | — | — | |||||
| Small letter n | — | — | |||||
| Small letter o | — | — | |||||
| Small letter p | — | — | |||||
| Small letter q | — | — | |||||
| Small letter r | — | — | |||||
| Small letter s | — | — | |||||
| Small letter t | — | — | |||||
| Small letter u | — | — | |||||
| Small letter v | — | — | |||||
| Small letter w | — | — | |||||
| Small letter x | — | — | |||||
| Small letter y | — | — | |||||
| Small letter z | — | — | |||||
| Left curly braceLeft curly brace. Opens a code block, an object literal, or a JSON object; brace expansion in the shell ({a,b,c}). | — | — | |||||
| Vertical bar (pipe)Vertical bar / pipe. Bitwise OR and (doubled) logical OR; the shell pipe sending one command's output into the next; alternation in regular expressions (a|b). | — | — | |||||
| Right curly braceRight curly brace. Closes the block or object opened by "{". | — | — | |||||
| TildeTilde. The home directory in a Unix path (~/file); bitwise NOT; "approximately" in prose and version ranges. | — | — |
Delete (127) (1)
| Dec | Hex | Oct | Bin | Char | Name | HTML | Esc |
|---|---|---|---|---|---|---|---|
| DeleteOriginally punched out all holes on paper tape to "erase" a character. Not a printable glyph. | — | — |
What this tool does
A complete, searchable reference for all 128 standard ASCII codes (0–127). Every row shows the same character seven ways: decimal, two-digit hexadecimal, three-digit octal, eight-bit binary, the glyph itself, its full name, its named HTML entity (where one exists, like & < >) and its C/JS escape sequence (\0 \t \n \r \b \f). The 33 control characters — NUL, SOH through US, and DEL — are not left as cryptic abbreviations: each one gets its full name and a plain-language note on what it actually did or still does, so you finally learn why Ctrl+C maps to ETX, why Ctrl+S freezes a terminal (XOFF), and what CR vs LF means for Windows line endings. Rows are grouped into control (0–31), printable (32–126) and DEL (127) so the structure of the table is obvious at a glance. Search resolves names ("newline"), abbreviations ("LF"), the glyph, the Chinese name, the HTML entity, or a code value in any base — type 65, 0x41, 0o101 or 01000001 and they all jump to capital A. Click any value to copy it. An optional panel covers extended ASCII (128–255, Latin-1) with an honest note on why "extended ASCII" is ambiguous. 100% client-side; nothing you search ever leaves the tab.
Tool details
- Input
- Text + Numbers
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 14 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Developer & DevOps · Developer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How ASCII Table Reference fits into your work
Use it in the small gaps between coding, reviewing, debugging, and shipping.
Developer jobs
- Formatting, validating, shrinking, or inspecting code-adjacent text.
- Preparing snippets for documentation, tickets, commits, or handoff.
- Checking a small payload quickly without switching tools.
Developer checks
- Run irreversible transforms like minify or obfuscate on a copy.
- Keep secrets out of pasted snippets unless the tool explicitly stays local.
- Use your normal tests or linter before shipping transformed code.
Good next steps
These links move the current task into a more complete workflow.
- 1 Unicode Character Inspector Inspect any text character-by-character: code points, UTF-8/UTF-16 bytes, HTML entities, JS escapes, names, and hidden zero-width / confusable glyphs. Open
- 2 Text to Binary Converter Text to binary (and back) — UTF-8 aware, 8/16/32 bit grouping, emoji safe. Open
- 3 HTML Entities Encoder Encode/decode HTML entities — & < > " ' and all numeric refs — browser-only Open
Real-world use cases
Decode a serial-port / hex-dump log without running code
You're staring at a `xxd` dump or a serial monitor showing bytes like 0x48 0x49 0x0A. Search each hex value here — 0x48 is H, 0x49 is I, 0x0A is LF (the line ending). In thirty seconds you've decoded "HI\n" by hand, confirmed the device is terminating lines with bare LF (not CR+LF), and you didn't have to drop into a REPL or trust an online "decoder" with your firmware logs.
Track down a CR/LF line-ending bug
A shell script committed on Windows fails on the Linux CI with "bad interpreter: /bin/bash^M". You suspect line endings. Look up CR (13, \r) and LF (10, \n) here, read the plain-language note, and it clicks: the file has CR+LF, the trailing CR is the visible ^M, and `dos2unix` (or stripping \r) fixes it. The table turns a cryptic error into an obvious cause.
Pick the right HTML entity for code-sample rendering
You're building a docs page that displays raw HTML, so every `<`, `>` and `&` must be escaped or the browser eats your markup. Search those glyphs to copy <, > and & directly — no guessing whether it's ' or ' for a single quote (both are shown). Paste them into your template and the code sample renders as text instead of executing.
Study encoding fundamentals for an interview or course
Interviewers love "what's the ASCII code for 'A'?" and "how many bits does a char take?". Reading the table top to bottom cements the structure: 0–31 are control, 'A' is 65, 'a' is 97 (exactly 32 apart — that's the case-flip bit), digits start at 48. Seeing dec, hex, oct and binary side by side makes base conversion intuitive rather than something you memorize.
Build escape-sequence and char-code logic in any language
Writing a tokenizer, a CSV parser, or input validation, you need to reason about specific bytes: is this a TAB (9) or four spaces? Is the delimiter a US (31) or a comma (44)? Search the abbreviation or the glyph, copy the decimal, and drop it into `charCodeAt`, `ord()`, a byte comparison, or a regex character class with confidence about the exact value.
Common pitfalls
Treating "extended ASCII" as one fixed table. Bytes 128–255 are not standardized — the same byte renders differently under Latin-1, Windows-1252, or UTF-8. If your text is UTF-8 (it usually is), a byte ≥ 128 is part of a multi-byte character, not a Latin-1 glyph. Always know the encoding before you map those bytes.
Confusing DEL (127) with Backspace (8). Backspace moves the cursor left to delete; DEL was the punch-out-all-holes "erase" code on paper tape. The Delete key on a modern keyboard usually sends an escape sequence, not byte 127, so don't assume a key equals its historical code.
Mixing up CR and LF, or assuming "newline" is one byte everywhere. \n is LF (10), \r is CR (13); Windows uses both (CR+LF), Unix uses LF alone. Hardcoding the wrong one is the classic source of ^M artifacts and doubled blank lines across platforms.
Privacy
This is a static reference: the entire 0–127 table (and the optional 128–255 panel) is generated in your browser from a fixed dataset. There is no text input to analyze, no upload, no server call, and no logging of what you search. The one thing that does leave the page is the shareable URL — your current search term is stored in the query string (?q=newline) so a "share link" reproduces the same filtered view. Search terms here are generic (a char name or code), so that's harmless; but be aware the term is visible in the URL bar and any access log of wherever you paste the link.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- 555 Timer Calculator Astable f = 1.44/((R1+2R2)C) + monostable t = 1.1RC — pick R1, R2, C in Ω/kΩ and µF/nF, read frequency, duty cycle and pulse width — browser-only
- Add Line Numbers Number every line of pasted text — set start, step and separator, zero-pad to align, skip blanks, or strip numbers back off — browser-only
- AES Text Encryptor Encrypt & decrypt text with a password — AES-256-GCM + PBKDF2 via WebCrypto — 100% in your browser, nothing uploaded
- Affine Cipher Encoder & Decoder Encrypt and decrypt the ax+b affine cipher with live modular-inverse check, browser-only