ASCII Table
The complete ASCII code chart — all 128 characters (0–127) with their decimal, hex, octal and binary values, the printable character or control-code name, and the HTML entity. Search by number, hex, character or name, and click any cell to copy. Flip on the extended 128–255 range when you need Latin-1. Everything runs in your browser; nothing is uploaded.
| Dec | Hex | Oct | Binary | Char | Name | HTML |
|---|---|---|---|---|---|---|
| NUL | Null (\0)ctrl | — | ||||
| SOH | Start of Headingctrl | — | ||||
| STX | Start of Textctrl | — | ||||
| ETX | End of Textctrl | — | ||||
| EOT | End of Transmissionctrl | — | ||||
| ENQ | Enquiryctrl | — | ||||
| ACK | Acknowledgectrl | — | ||||
| BEL | Bell / Alert (\a)ctrl | — | ||||
| BS | Backspace (\b)ctrl | — | ||||
| HT (TAB) | Horizontal Tab (\t)ctrl | — | ||||
| LF | Line Feed (\n)ctrl | — | ||||
| VT | Vertical Tab (\v)ctrl | — | ||||
| FF | Form Feed (\f)ctrl | — | ||||
| CR | Carriage Return (\r)ctrl | — | ||||
| SO | Shift Outctrl | — | ||||
| SI | Shift Inctrl | — | ||||
| DLE | Data Link Escapectrl | — | ||||
| DC1 | Device Control 1 (XON)ctrl | — | ||||
| DC2 | Device Control 2ctrl | — | ||||
| DC3 | Device Control 3 (XOFF)ctrl | — | ||||
| DC4 | Device Control 4ctrl | — | ||||
| NAK | Negative Acknowledgectrl | — | ||||
| SYN | Synchronous Idlectrl | — | ||||
| ETB | End of Transmission Blockctrl | — | ||||
| CAN | Cancelctrl | — | ||||
| EM | End of Mediumctrl | — | ||||
| SUB | Substitutectrl | — | ||||
| ESC | Escape (\e)ctrl | — | ||||
| FS | File Separatorctrl | — | ||||
| GS | Group Separatorctrl | — | ||||
| RS | Record Separatorctrl | — | ||||
| US | Unit Separatorctrl | — | ||||
| Space | ||||||
| Exclamation mark | ||||||
| Double quote | ||||||
| Number sign (hash) | ||||||
| Dollar sign | ||||||
| Percent sign | ||||||
| Ampersand | ||||||
| Single quote (apostrophe) | ||||||
| Left parenthesis | ||||||
| Right parenthesis | ||||||
| Asterisk | ||||||
| Plus sign | ||||||
| Comma | ||||||
| Hyphen-minus | ||||||
| Period (full stop) | ||||||
| Slash (solidus) | ||||||
| Digit 0 | ||||||
| Digit 1 | ||||||
| Digit 2 | ||||||
| Digit 3 | ||||||
| Digit 4 | ||||||
| Digit 5 | ||||||
| Digit 6 | ||||||
| Digit 7 | ||||||
| Digit 8 | ||||||
| Digit 9 | ||||||
| Colon | ||||||
| Semicolon | ||||||
| Less-than sign | ||||||
| Equals sign | ||||||
| Greater-than sign | ||||||
| Question mark | ||||||
| At sign | ||||||
| Uppercase A | ||||||
| Uppercase B | ||||||
| Uppercase C | ||||||
| Uppercase D | ||||||
| Uppercase E | ||||||
| Uppercase F | ||||||
| Uppercase G | ||||||
| Uppercase H | ||||||
| Uppercase I | ||||||
| Uppercase J | ||||||
| Uppercase K | ||||||
| Uppercase L | ||||||
| Uppercase M | ||||||
| Uppercase N | ||||||
| Uppercase O | ||||||
| Uppercase P | ||||||
| Uppercase Q | ||||||
| Uppercase R | ||||||
| Uppercase S | ||||||
| Uppercase T | ||||||
| Uppercase U | ||||||
| Uppercase V | ||||||
| Uppercase W | ||||||
| Uppercase X | ||||||
| Uppercase Y | ||||||
| Uppercase Z | ||||||
| Left square bracket | ||||||
| Backslash | ||||||
| Right square bracket | ||||||
| Caret (circumflex) | ||||||
| Underscore | ||||||
| Backtick (grave accent) | ||||||
| Lowercase a | ||||||
| Lowercase b | ||||||
| Lowercase c | ||||||
| Lowercase d | ||||||
| Lowercase e | ||||||
| Lowercase f | ||||||
| Lowercase g | ||||||
| Lowercase h | ||||||
| Lowercase i | ||||||
| Lowercase j | ||||||
| Lowercase k | ||||||
| Lowercase l | ||||||
| Lowercase m | ||||||
| Lowercase n | ||||||
| Lowercase o | ||||||
| Lowercase p | ||||||
| Lowercase q | ||||||
| Lowercase r | ||||||
| Lowercase s | ||||||
| Lowercase t | ||||||
| Lowercase u | ||||||
| Lowercase v | ||||||
| Lowercase w | ||||||
| Lowercase x | ||||||
| Lowercase y | ||||||
| Lowercase z | ||||||
| Left curly brace | ||||||
| Vertical bar (pipe) | ||||||
| Right curly brace | ||||||
| Tilde | ||||||
| DEL | Deletectrl | — |
Click any cell to copy its value. Showing 128 of 128 codes. 100% in your browser — nothing is sent anywhere.
What this tool is
- A complete, searchable ASCII reference: all 128 standard ASCII codes (0–127) with their decimal, hexadecimal, octal and 8-bit binary values side by side.
- Every row shows the printable character or, for the 33 non-printing codes, its control-code abbreviation and full name (0 NUL, 9 HT/TAB, 10 LF, 13 CR, 27 ESC, 127 DEL) — plus the HTML entity where one applies.
- Search by decimal, hex, octal, binary, the character itself or its name, and click any cell to copy the value.
- An optional toggle adds the 128–255 range, clearly labelled as ISO-8859-1 (Latin-1) — not true ASCII — with a note that other “extended ASCII” code pages map those bytes differently.
- A pure reference tool: free, no signup, no usage limit, and 100% client-side — nothing you type or look up is ever sent to a server.
What is ASCII?
ASCII — the American Standard Code for Information Interchange — is a 7-bit character encoding. Seven bits give 27 = 128 distinct values, numbered 0 to 127, and ASCII assigns one character to each: the letters, the digits, punctuation, the space, and a set of invisible control codes. Because the whole set fits in seven bits, every ASCII character occupies a single byte with the top bit clear — which is exactly why so much of computing was, and still is, built on top of it.
The three regions
- 0–31 — control codes. 32 non-printing characters that command a device rather than show a glyph:
9horizontal tab,10line feed (\n),13carriage return (\r),27escape,7bell,8backspace, and more. - 32–126 — printable characters.
32is the space;48–57the digits0–9;65–90uppercaseA–Z;97–122lowercasea–z; the gaps are punctuation and symbols. Note uppercase and lowercase differ by exactly 32. - 127 — DEL. A lone legacy control code at the very top of the range, originally “delete” (punched-out tape).
Landmarks worth memorising
A handful of values let you decode a lot by hand: 65 = A, 97 = a (so a case flip is just ±32), 48 = 0, 32 = space, 10 = LF, 13 = CR, 27 = ESC and 127 = DEL.
Extended / 8-bit “ASCII”
Strictly, ASCII stops at 127. When people say “extended ASCII” they mean one of several 8-bit encodings that keep 0–127 identical to ASCII and add 128 more characters in 128–255. There is no single such set: ISO-8859-1 (Latin-1), Windows-1252, CP437 and Mac Roman all disagree about what the high bytes mean. The extended toggle in this tool shows the Latin-1 interpretation and says so — treat a byte above 127 as meaningless until you know its encoding, because guessing wrong is a classic source of mojibake and parsing bugs.
ASCII, Unicode and UTF-8
Unicode extends the idea of ASCII to essentially every writing system, and it was designed so its first 128 code points (U+0000–U+007F) are exactly ASCII. UTF-8 encodes those first 128 code points as a single byte with the same value, so any plain-ASCII text is already valid UTF-8, unchanged. Characters past 127 become 2–4 UTF-8 bytes — which is precisely why the single-byte extended tables are not interchangeable with UTF-8.
Where it shows up: char↔code conversions (ord()/chr(), C char arithmetic), reading hex dumps and packet captures, terminal escape sequences and log parsing, URL and HTML encoding, and CTF / forensics puzzles where a flag is hidden as decimal, hex or binary byte values. This table gives you every code in all four bases at once so the conversion is just a glance and a click.

Frequently asked questions
What is ASCII?
ASCII (American Standard Code for Information Interchange) is a 7-bit character encoding that assigns a number from 0 to 127 to each of 128 characters: the letters A–Z and a–z, the digits 0–9, common punctuation, the space, and 33 non-printing control codes. Because it is 7-bit, every ASCII character fits in a single byte with the high bit clear. Standardised in the 1960s, ASCII became the foundation that almost every later encoding — including Unicode and UTF-8 — was built to stay compatible with.
What is the difference between control characters and printable characters?
Codes 0–31 and code 127 (DEL) are control characters: they do not represent a visible glyph but instruct a device or program to do something — for example 9 is a horizontal tab, 10 is line feed (\n, "new line"), 13 is carriage return (\r), 7 rings the terminal bell, 8 is backspace and 27 is the escape character that begins terminal escape sequences. Codes 32–126 are printable: 32 is the space, 48–57 are the digits 0–9, 65–90 are uppercase A–Z, 97–122 are lowercase a–z, and the rest are punctuation and symbols. DEL (127) sits on its own at the end of the range as a legacy control code.
What is "extended ASCII" and is it the same everywhere?
No — and this is a common source of bugs. True ASCII only defines 0–127. "Extended ASCII" is an informal name for any of several 8-bit encodings that reuse the ASCII values 0–127 and add 128 more characters in the 128–255 range. The problem is that there is no single "extended ASCII": ISO-8859-1 (Latin-1), Windows-1252, CP437 (the original IBM PC set), Mac Roman and others each assign the bytes above 127 to different characters. The same byte 0x93 is a curly left quote in Windows-1252 but an undefined C1 control in Latin-1. The extended range in this tool is shown specifically as Latin-1 and labelled as such; never assume a byte above 127 means anything until you know the encoding.
How does ASCII relate to Unicode and UTF-8?
Unicode is the modern universal character set covering virtually every script and symbol, with each character assigned a code point. The first 128 Unicode code points (U+0000 to U+007F) are deliberately identical to ASCII. UTF-8, the dominant encoding of Unicode on the web, encodes those first 128 code points as a single byte with exactly the same value as ASCII — so any plain-ASCII text is already valid, byte-for-byte UTF-8. Characters beyond 127 are encoded in UTF-8 as two to four bytes, which is why the single-byte "extended ASCII" tables are not interchangeable with UTF-8.
Where is an ASCII table actually useful?
All over programming and security work: converting between a character and its numeric code (e.g. in C, chr()/ord() in Python, or char math in any language), reading hex dumps and network captures, understanding escape sequences and control characters in terminals and log files, URL/HTML encoding, and solving CTF or forensics challenges where data is hidden as decimal, hex or binary byte values. Knowing landmarks like 65=A, 97=a (so uppercase and lowercase differ by 32), 48=0, 32=space, 10=LF and 13=CR lets you decode a lot by hand.