ASCII Table Reference
Every ASCII code 0–127 with its decimal, hex, octal and binary value, glyph and control-code name — searchable instantly, entirely on this device.
All 128 ASCII codes shown
Match a single code or character to see its decimal, hex, octal and binary value, glyph and HTML entity here.
| Dec | Hex | Oct | Bin | Char | Name | HTML entity |
|---|---|---|---|---|---|---|
| 0 | 0x00 | 000 | 00000000 | ^@ \0 | Null | � |
| 1 | 0x01 | 001 | 00000001 | ^A | Start of Heading |  |
| 2 | 0x02 | 002 | 00000010 | ^B | Start of Text |  |
| 3 | 0x03 | 003 | 00000011 | ^C | End of Text |  |
| 4 | 0x04 | 004 | 00000100 | ^D | End of Transmission |  |
| 5 | 0x05 | 005 | 00000101 | ^E | Enquiry |  |
| 6 | 0x06 | 006 | 00000110 | ^F | Acknowledge |  |
| 7 | 0x07 | 007 | 00000111 | ^G \a | Bell |  |
| 8 | 0x08 | 010 | 00001000 | ^H \b | Backspace |  |
| 9 | 0x09 | 011 | 00001001 | ^I \t | Horizontal Tab | 	 |
| 10 | 0x0A | 012 | 00001010 | ^J \n | Line Feed | |
| 11 | 0x0B | 013 | 00001011 | ^K \v | Vertical Tab |  |
| 12 | 0x0C | 014 | 00001100 | ^L \f | Form Feed |  |
| 13 | 0x0D | 015 | 00001101 | ^M \r | Carriage Return | |
| 14 | 0x0E | 016 | 00001110 | ^N | Shift Out |  |
| 15 | 0x0F | 017 | 00001111 | ^O | Shift In |  |
| 16 | 0x10 | 020 | 00010000 | ^P | Data Link Escape |  |
| 17 | 0x11 | 021 | 00010001 | ^Q | Device Control 1 |  |
| 18 | 0x12 | 022 | 00010010 | ^R | Device Control 2 |  |
| 19 | 0x13 | 023 | 00010011 | ^S | Device Control 3 |  |
| 20 | 0x14 | 024 | 00010100 | ^T | Device Control 4 |  |
| 21 | 0x15 | 025 | 00010101 | ^U | Negative Acknowledge |  |
| 22 | 0x16 | 026 | 00010110 | ^V | Synchronous Idle |  |
| 23 | 0x17 | 027 | 00010111 | ^W | End of Transmission Block |  |
| 24 | 0x18 | 030 | 00011000 | ^X | Cancel |  |
| 25 | 0x19 | 031 | 00011001 | ^Y | End of Medium |  |
| 26 | 0x1A | 032 | 00011010 | ^Z | Substitute |  |
| 27 | 0x1B | 033 | 00011011 | ^[ \e | Escape |  |
| 28 | 0x1C | 034 | 00011100 | ^\ | File Separator |  |
| 29 | 0x1D | 035 | 00011101 | ^] | Group Separator |  |
| 30 | 0x1E | 036 | 00011110 | ^^ | Record Separator |  |
| 31 | 0x1F | 037 | 00011111 | ^_ | Unit Separator |  |
| 32 | 0x20 | 040 | 00100000 | SP | Space |   |
| 33 | 0x21 | 041 | 00100001 | ! | Exclamation mark | ! |
| 34 | 0x22 | 042 | 00100010 | " | Quotation mark | " |
| 35 | 0x23 | 043 | 00100011 | # | Number sign | # |
| 36 | 0x24 | 044 | 00100100 | $ | Dollar sign | $ |
| 37 | 0x25 | 045 | 00100101 | % | Percent sign | % |
| 38 | 0x26 | 046 | 00100110 | & | Ampersand | & |
| 39 | 0x27 | 047 | 00100111 | ' | Apostrophe | ' |
| 40 | 0x28 | 050 | 00101000 | ( | Left parenthesis | ( |
| 41 | 0x29 | 051 | 00101001 | ) | Right parenthesis | ) |
| 42 | 0x2A | 052 | 00101010 | * | Asterisk | * |
| 43 | 0x2B | 053 | 00101011 | + | Plus sign | + |
| 44 | 0x2C | 054 | 00101100 | , | Comma | , |
| 45 | 0x2D | 055 | 00101101 | - | Hyphen-minus | - |
| 46 | 0x2E | 056 | 00101110 | . | Full stop | . |
| 47 | 0x2F | 057 | 00101111 | / | Slash | / |
| 48 | 0x30 | 060 | 00110000 | 0 | Digit 0 | 0 |
| 49 | 0x31 | 061 | 00110001 | 1 | Digit 1 | 1 |
| 50 | 0x32 | 062 | 00110010 | 2 | Digit 2 | 2 |
| 51 | 0x33 | 063 | 00110011 | 3 | Digit 3 | 3 |
| 52 | 0x34 | 064 | 00110100 | 4 | Digit 4 | 4 |
| 53 | 0x35 | 065 | 00110101 | 5 | Digit 5 | 5 |
| 54 | 0x36 | 066 | 00110110 | 6 | Digit 6 | 6 |
| 55 | 0x37 | 067 | 00110111 | 7 | Digit 7 | 7 |
| 56 | 0x38 | 070 | 00111000 | 8 | Digit 8 | 8 |
| 57 | 0x39 | 071 | 00111001 | 9 | Digit 9 | 9 |
| 58 | 0x3A | 072 | 00111010 | : | Colon | : |
| 59 | 0x3B | 073 | 00111011 | ; | Semicolon | ; |
| 60 | 0x3C | 074 | 00111100 | < | Less-than sign | < |
| 61 | 0x3D | 075 | 00111101 | = | Equals sign | = |
| 62 | 0x3E | 076 | 00111110 | > | Greater-than sign | > |
| 63 | 0x3F | 077 | 00111111 | ? | Question mark | ? |
| 64 | 0x40 | 100 | 01000000 | @ | At sign | @ |
| 65 | 0x41 | 101 | 01000001 | A | Uppercase A | A |
| 66 | 0x42 | 102 | 01000010 | B | Uppercase B | B |
| 67 | 0x43 | 103 | 01000011 | C | Uppercase C | C |
| 68 | 0x44 | 104 | 01000100 | D | Uppercase D | D |
| 69 | 0x45 | 105 | 01000101 | E | Uppercase E | E |
| 70 | 0x46 | 106 | 01000110 | F | Uppercase F | F |
| 71 | 0x47 | 107 | 01000111 | G | Uppercase G | G |
| 72 | 0x48 | 110 | 01001000 | H | Uppercase H | H |
| 73 | 0x49 | 111 | 01001001 | I | Uppercase I | I |
| 74 | 0x4A | 112 | 01001010 | J | Uppercase J | J |
| 75 | 0x4B | 113 | 01001011 | K | Uppercase K | K |
| 76 | 0x4C | 114 | 01001100 | L | Uppercase L | L |
| 77 | 0x4D | 115 | 01001101 | M | Uppercase M | M |
| 78 | 0x4E | 116 | 01001110 | N | Uppercase N | N |
| 79 | 0x4F | 117 | 01001111 | O | Uppercase O | O |
| 80 | 0x50 | 120 | 01010000 | P | Uppercase P | P |
| 81 | 0x51 | 121 | 01010001 | Q | Uppercase Q | Q |
| 82 | 0x52 | 122 | 01010010 | R | Uppercase R | R |
| 83 | 0x53 | 123 | 01010011 | S | Uppercase S | S |
| 84 | 0x54 | 124 | 01010100 | T | Uppercase T | T |
| 85 | 0x55 | 125 | 01010101 | U | Uppercase U | U |
| 86 | 0x56 | 126 | 01010110 | V | Uppercase V | V |
| 87 | 0x57 | 127 | 01010111 | W | Uppercase W | W |
| 88 | 0x58 | 130 | 01011000 | X | Uppercase X | X |
| 89 | 0x59 | 131 | 01011001 | Y | Uppercase Y | Y |
| 90 | 0x5A | 132 | 01011010 | Z | Uppercase Z | Z |
| 91 | 0x5B | 133 | 01011011 | [ | Left square bracket | [ |
| 92 | 0x5C | 134 | 01011100 | \ | Backslash | \ |
| 93 | 0x5D | 135 | 01011101 | ] | Right square bracket | ] |
| 94 | 0x5E | 136 | 01011110 | ^ | Circumflex accent | ^ |
| 95 | 0x5F | 137 | 01011111 | _ | Underscore | _ |
| 96 | 0x60 | 140 | 01100000 | ` | Grave accent | ` |
| 97 | 0x61 | 141 | 01100001 | a | Lowercase a | a |
| 98 | 0x62 | 142 | 01100010 | b | Lowercase b | b |
| 99 | 0x63 | 143 | 01100011 | c | Lowercase c | c |
| 100 | 0x64 | 144 | 01100100 | d | Lowercase d | d |
| 101 | 0x65 | 145 | 01100101 | e | Lowercase e | e |
| 102 | 0x66 | 146 | 01100110 | f | Lowercase f | f |
| 103 | 0x67 | 147 | 01100111 | g | Lowercase g | g |
| 104 | 0x68 | 150 | 01101000 | h | Lowercase h | h |
| 105 | 0x69 | 151 | 01101001 | i | Lowercase i | i |
| 106 | 0x6A | 152 | 01101010 | j | Lowercase j | j |
| 107 | 0x6B | 153 | 01101011 | k | Lowercase k | k |
| 108 | 0x6C | 154 | 01101100 | l | Lowercase l | l |
| 109 | 0x6D | 155 | 01101101 | m | Lowercase m | m |
| 110 | 0x6E | 156 | 01101110 | n | Lowercase n | n |
| 111 | 0x6F | 157 | 01101111 | o | Lowercase o | o |
| 112 | 0x70 | 160 | 01110000 | p | Lowercase p | p |
| 113 | 0x71 | 161 | 01110001 | q | Lowercase q | q |
| 114 | 0x72 | 162 | 01110010 | r | Lowercase r | r |
| 115 | 0x73 | 163 | 01110011 | s | Lowercase s | s |
| 116 | 0x74 | 164 | 01110100 | t | Lowercase t | t |
| 117 | 0x75 | 165 | 01110101 | u | Lowercase u | u |
| 118 | 0x76 | 166 | 01110110 | v | Lowercase v | v |
| 119 | 0x77 | 167 | 01110111 | w | Lowercase w | w |
| 120 | 0x78 | 170 | 01111000 | x | Lowercase x | x |
| 121 | 0x79 | 171 | 01111001 | y | Lowercase y | y |
| 122 | 0x7A | 172 | 01111010 | z | Lowercase z | z |
| 123 | 0x7B | 173 | 01111011 | { | Left curly bracket | { |
| 124 | 0x7C | 174 | 01111100 | | | Vertical bar | | |
| 125 | 0x7D | 175 | 01111101 | } | Right curly bracket | } |
| 126 | 0x7E | 176 | 01111110 | ~ | Tilde | ~ |
| 127 | 0x7F | 177 | 01111111 | ^? | Delete |  |
No matching ASCII code — here's how the search works
Try one of the shapes the finder understands:
- A bare number — 65 — is a decimal code.
- A 0x, 0o or 0b prefix reads hex, octal or binary.
- A single character finds its row (A and a differ).
- A mnemonic — nul, esc, del — finds its control.
- A word matches the code names, like carriage.
Do it offline:$ awk 'BEGIN{printf "%d %o 0x%x %c\n", 65, 65, 65, 65}'
How to use it
- Type whatever you have. A bare number is decimal — 65 is the letter A — while a 0x, 0o or 0b prefix selects hex, octal or binary. A single character jumps to its row; a mnemonic such as nul, esc or del works too. Press / to focus the filter.
- Read the row. It carries the same columns — decimal, hex, octal, binary, the character and its name — plus the numeric HTML entity.
- Copy the exact form you need. Each row has buttons for its decimal, 0x-hex, octal and binary values and for the character; a control row copies the caret form, not an invisible byte.
- Link to one code. Every row has a stable #ascii-{n} anchor, so Copy link hands a teammate /ascii-table#ascii-65 and it opens with that row revealed — an ordinary anchor, no JavaScript needed.
All 128 codes of 7-bit ASCII — 0 through 127 — on one page as plain HTML you can read before any script loads. Each row shows its decimal, hexadecimal, octal and binary value, the character or control-code name, and the numeric HTML entity. Type a number, character, mnemonic like esc, or word to jump to a row — nothing you type leaves this device.
How it works
ASCII is a 7-bit code, so it defines exactly 128 numbers, 0 to 127, and nothing above. Seven bits is why the binary column is always eight digits with a leading zero, and why the highest code, 127, is 0x7F.
The codes fall into two groups. 0 to 31 and 127 are the C0 control set — Null, Tab, Line Feed, Escape and the rest — which command a device rather than print a mark, so their Char column shows caret notation like ^J, not an invisible byte. 32 to 126 are printable — space, digits, punctuation and both cased alphabets.
Nothing here is fetched or computed while you read. The 128 rows are a build-time snapshot checked on every test run against the arithmetic itself: each hex, octal and binary cell is re-derived from the decimal code, so a wrong digit fails the build, not the page.
The finder never guesses your base. A bare number is decimal by the oldest ASCII convention — which is why 41 is the right parenthesis and 0x41 is the letter A — and the prefixes keep the code spaces from blurring. A number from 128 to 255 answers that it is Latin-1, not part of this table.
Examples
6565 · 0x41 · 0o101 · 0b01000001 · A · Uppercase A · AA bare number is decimal, so 65 is capital A. The same row answers to 0x41, 0o101 and 0b01000001 — one code, four bases.
0x0A10 · 0x0A · 0o012 · 0b00001010 · ^J \n · Line Feed · The 0x prefix forces hex, so 0x0A is code 10, Line Feed — the \n that ends a Unix line. Its Char cell shows the caret ^J and the C escape, never a real newline.
esc27 · 0x1B · 0o033 · 0b00011011 · ^[ \e · Escape · A mnemonic resolves straight to its row: esc is code 27, Escape. nul, cr, lf, tab and del work the same way.
carriage13 · 0x0D · 0o015 · 0b00001101 · ^M \r · Carriage Return · A plain word matches on the names, so carriage finds Carriage Return, code 13 — the character Line Feed pairs with to form Windows CRLF.
200200 is Extended ASCII / Latin-1 (128–255), not 7-bit ASCII — this table ends at 127.200 parses cleanly but sits above 127, so instead of a row the finder says it is Latin-1 territory — a pointed answer, not a blank result.
@64 · 0x40 · 0o100 · 0b01000000 · @ · At sign · @A single printable character jumps to its row: @ is code 64. Lookup is case-sensitive, so A is 65 and a is 97 — two codes, two rows.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Control codes never print a raw byte
Codes 0 to 31 and 127 are non-printing, so the Char column shows caret notation — ^@ for Null, ^I for Tab, ^M for Carriage Return, ^? for Delete — plus the C escape (\0, \t, \r) where one exists.
A bare number is always decimal
Type 41 and you get the right parenthesis, code 41 — not 0x41, which is A. Reading bare numbers as decimal is the oldest ASCII convention; use a 0x, 0o or 0b prefix for hex, octal or binary.
128 to 255 is Latin-1, not this table
7-bit ASCII stops at 127. A number from 128 to 255 is answered as Extended ASCII or Latin-1, and 256 or more reports as out of range — neither is faked into a row, because neither is ASCII.
Space, and words that match names
A lone space can't be looked up as a character — whitespace collapses to an empty query that shows the whole table — so reach code 32 with sp or 32. A word like digit matches names and surfaces all ten digit rows at once.
Case-sensitive characters, case-blind keywords
Character lookup respects case: A is 65 and a is 97. Everything else is case-blind, so ESC, esc, 0X0A and 0x0a reach the same place. Input is capped at 256 characters, the filter's own limit.
Common errors
200 is Extended ASCII / Latin-1 (128–255), not 7-bit ASCII — this table ends at 127.- The answer when a number lands between 128 and 255. Those codes are real but belong to Latin-1 and other 8-bit encodings, not 7-bit ASCII — so the page names where the code lives instead of inventing a row.
That character is beyond 7-bit ASCII — a Unicode inspector can identify it.- The state for a single character above code 127 — an accented letter, an emoji, a CJK glyph. None is ASCII, so rather than a dead end the finder hands you to the Unicode inspector, built for those code points.
No matching ASCII code — here's how the search works- The no-match state for input that fits none of the query shapes. It is not a dead end: the block beneath lists the shapes the finder understands, and Show all codes restores the full 128-row table.
FAQ
Why does the number 65 stand for the letter A?
Because ASCII gives capital A the code 65, and the uppercase letters follow in order to Z at 90. Lowercase starts 32 codes later, so a is 97 — and the gap of 32 is one bit, so flipping it switches case.
How is ASCII related to Unicode and UTF-8?
ASCII defines 128 code points; Unicode defines over a million, arranged so its first 128 are identical to ASCII. Every ASCII byte is therefore valid UTF-8 unchanged, so plain ASCII text opens correctly almost anywhere.
Why are codes 0 to 31 and 127 called control characters?
They were never meant to print. Each signalled an action to a teletype — ring the bell, feed a line, delete — so they carry mnemonics and caret forms, not glyphs. Most are historical; Tab, Line Feed and Carriage Return still see daily use.
How do I read the hex, octal and binary columns?
They are one code in four bases. Capital A at 65 is 0x41 in hex, 0o101 in octal and 0b01000001 in binary — the binary is always eight digits, since a 7-bit code leaves the top bit zero.
Is extended ASCII on this page?
No. Codes 128 to 255 — the accented letters and box-drawing characters of Latin-1 and the old DOS code pages — are not 7-bit ASCII, so this table stops at 127; higher codes report as out of range and live in the Unicode tools instead.
What is the HTML entity column for?
It is the numeric character reference — A for A — that renders a character from its decimal code in HTML or XML. It helps when a byte is awkward to type directly and maps one-to-one with the decimal column.
Keyboard shortcuts
- /
- Focus the filter box