ASCII Table

Every code point, 0–255, with decimal, hex, octal, and binary. Filter below, or export the whole table as CSV.

Standard ASCII (0–127)

DecHexOctBinaryChar
00000000000000NUL
10100100000001SOH
20200200000010STX
30300300000011ETX
40400400000100EOT
50500500000101ENQ
60600600000110ACK
70700700000111BEL
80801000001000BS
90901100001001HT
100A01200001010LF
110B01300001011VT
120C01400001100FF
130D01500001101CR
140E01600001110SO
150F01700001111SI
161002000010000DLE
171102100010001DC1
181202200010010DC2
191302300010011DC3
201402400010100DC4
211502500010101NAK
221602600010110SYN
231702700010111ETB
241803000011000CAN
251903100011001EM
261A03200011010SUB
271B03300011011ESC
281C03400011100FS
291D03500011101GS
301E03600011110RS
311F03700011111US
322004000100000(space)
332104100100001!
342204200100010"
352304300100011#
362404400100100$
372504500100101%
382604600100110&
392704700100111'
402805000101000(
412905100101001)
422A05200101010*
432B05300101011+
442C05400101100,
452D05500101101-
462E05600101110.
472F05700101111/
4830060001100000
4931061001100011
5032062001100102
5133063001100113
5234064001101004
5335065001101015
5436066001101106
5537067001101117
5638070001110008
5739071001110019
583A07200111010:
593B07300111011;
603C07400111100<
613D07500111101=
623E07600111110>
633F07700111111?
644010001000000@
654110101000001A
664210201000010B
674310301000011C
684410401000100D
694510501000101E
704610601000110F
714710701000111G
724811001001000H
734911101001001I
744A11201001010J
754B11301001011K
764C11401001100L
774D11501001101M
784E11601001110N
794F11701001111O
805012001010000P
815112101010001Q
825212201010010R
835312301010011S
845412401010100T
855512501010101U
865612601010110V
875712701010111W
885813001011000X
895913101011001Y
905A13201011010Z
915B13301011011[
925C13401011100\
935D13501011101]
945E13601011110^
955F13701011111_
966014001100000`
976114101100001a
986214201100010b
996314301100011c
1006414401100100d
1016514501100101e
1026614601100110f
1036714701100111g
1046815001101000h
1056915101101001i
1066A15201101010j
1076B15301101011k
1086C15401101100l
1096D15501101101m
1106E15601101110n
1116F15701101111o
1127016001110000p
1137116101110001q
1147216201110010r
1157316301110011s
1167416401110100t
1177516501110101u
1187616601110110v
1197716701110111w
1207817001111000x
1217917101111001y
1227A17201111010z
1237B17301111011{
1247C17401111100|
1257D17501111101}
1267E17601111110~
1277F17701111111DEL

Extended range (128–255) — ISO-8859-1 / Latin-1

This range isn't part of ASCII and isn't standardized — it depends entirely on the encoding a system uses. Shown here is ISO-8859-1 (Latin-1) for reference; see the FAQ below for how Windows-1252 differs.

DecHexOctBinaryChar
1288020010000000C1-0
1298120110000001C1-1
1308220210000010C1-2
1318320310000011C1-3
1328420410000100C1-4
1338520510000101C1-5
1348620610000110C1-6
1358720710000111C1-7
1368821010001000C1-8
1378921110001001C1-9
1388A21210001010C1-10
1398B21310001011C1-11
1408C21410001100C1-12
1418D21510001101C1-13
1428E21610001110C1-14
1438F21710001111C1-15
1449022010010000C1-16
1459122110010001C1-17
1469222210010010C1-18
1479322310010011C1-19
1489422410010100C1-20
1499522510010101C1-21
1509622610010110C1-22
1519722710010111C1-23
1529823010011000C1-24
1539923110011001C1-25
1549A23210011010C1-26
1559B23310011011C1-27
1569C23410011100C1-28
1579D23510011101C1-29
1589E23610011110C1-30
1599F23710011111C1-31
160A024010100000 
161A124110100001¡
162A224210100010¢
163A324310100011£
164A424410100100¤
165A524510100101¥
166A624610100110¦
167A724710100111§
168A825010101000¨
169A925110101001©
170AA25210101010ª
171AB25310101011«
172AC25410101100¬
173AD25510101101­
174AE25610101110®
175AF25710101111¯
176B026010110000°
177B126110110001±
178B226210110010²
179B326310110011³
180B426410110100´
181B526510110101µ
182B626610110110
183B726710110111·
184B827010111000¸
185B927110111001¹
186BA27210111010º
187BB27310111011»
188BC27410111100¼
189BD27510111101½
190BE27610111110¾
191BF27710111111¿
192C030011000000À
193C130111000001Á
194C230211000010Â
195C330311000011Ã
196C430411000100Ä
197C530511000101Å
198C630611000110Æ
199C730711000111Ç
200C831011001000È
201C931111001001É
202CA31211001010Ê
203CB31311001011Ë
204CC31411001100Ì
205CD31511001101Í
206CE31611001110Î
207CF31711001111Ï
208D032011010000Ð
209D132111010001Ñ
210D232211010010Ò
211D332311010011Ó
212D432411010100Ô
213D532511010101Õ
214D632611010110Ö
215D732711010111×
216D833011011000Ø
217D933111011001Ù
218DA33211011010Ú
219DB33311011011Û
220DC33411011100Ü
221DD33511011101Ý
222DE33611011110Þ
223DF33711011111ß
224E034011100000à
225E134111100001á
226E234211100010â
227E334311100011ã
228E434411100100ä
229E534511100101å
230E634611100110æ
231E734711100111ç
232E835011101000è
233E935111101001é
234EA35211101010ê
235EB35311101011ë
236EC35411101100ì
237ED35511101101í
238EE35611101110î
239EF35711101111ï
240F036011110000ð
241F136111110001ñ
242F236211110010ò
243F336311110011ó
244F436411110100ô
245F536511110101õ
246F636611110110ö
247F736711110111÷
248F837011111000ø
249F937111111001ù
250FA37211111010ú
251FB37311111011û
252FC37411111100ü
253FD37511111101ý
254FE37611111110þ
255FF37711111111ÿ

Why ASCII stops at 127

ASCII (American Standard Code for Information Interchange) was standardized in the 1960s as a 7-bit code — each character represented by a number from 0 to 127, fitting in 7 bits with one bit historically left over for parity checking on early serial links. That 7-bit ceiling wasn't an oversight; it was the deliberate scope of the standard. Every value above 127 needs an eighth bit, and what that eighth bit means was never part of ASCII itself — it was left to whatever encoding a particular manufacturer, operating system, or country's standards body decided to define on top of it.

The three blocks within 0–127

The standard range splits cleanly into three sections. Codes 0–31, plus 127, are control characters — codes that were never meant to be printed or displayed, but to instruct a teletype, terminal, or modem to do something: ring a bell (BEL, 7), move to a new line (LF, 10), signal end-of-transmission (EOT, 4), or delete the previous character (DEL, 127). Most of these trace back to physical teletype hardware from the 1960s and 70s and have no visual glyph at all, which is why this table shows their abbreviation instead of a character. Code 32 is the space character — technically printable but invisible. Codes 33 through 126 are the familiar printable set: digits, uppercase and lowercase Latin letters, and punctuation.

Why the layout isn't arbitrary

ASCII's numbering has structure built into it that makes certain operations trivial. Digits 0–9 occupy a contiguous block (48–57), so subtracting 48 from a digit character's code gives its numeric value directly. Uppercase letters (65–90) and lowercase letters (97–122) are each contiguous too, and the gap between a letter's uppercase and lowercase code is always exactly 32 — one bit — which is why toggling that single bit is a common trick for case conversion at the bit level. This deliberate layout is also why the hex column repeats useful patterns: every uppercase letter's hex value starts with 4 or 5, and every lowercase letter's starts with 6 or 7, differing by exactly 0x20.

What "extended ASCII" actually means

There is no single official "extended ASCII" standard — the phrase is a catch-all for any 8-bit encoding that keeps standard ASCII in positions 0–127 and adds something else in 128–255. ISO-8859-1 (Latin-1), shown in the second table above, was one of the most widely adopted choices, covering Western European accented characters and symbols. Windows-1252, Microsoft's variant, is nearly identical but repurposes positions 128–159 — which Latin-1 leaves as obscure C1 control codes — for printable characters like curly quotes, an em dash, and the euro sign, which is why text copied from older Windows software sometimes displays "smart quotes" or a stray "€" incorrectly on a system expecting strict Latin-1. Other regions standardized entirely different 8-bit code pages for the same range, which is precisely the ambiguity Unicode and UTF-8 were designed to eliminate.

ASCII's relationship to Unicode and UTF-8

ASCII didn't get replaced so much as absorbed. Unicode assigns the exact same 128 code points to the exact same characters as ASCII, and UTF-8 — the encoding that now carries most of the text on the internet — represents those first 128 code points as a single byte identical to classic ASCII. A plain ASCII text file is already valid UTF-8, byte for byte, with no conversion needed. The difference only shows up once a code point exceeds 127: UTF-8 then switches to a variable-length, self-describing multi-byte sequence, covering the rest of Unicode's far larger range instead of a single fixed 8-bit extension. TheHex ↔ UTF-8 tool covers that multi-byte behavior directly.

Reading the columns

Decimal is the code point's plain numeric value. Hex is that same value in base 16, the form most commonly seen in source code and documentation (0x41 for capital A). Octal (base 8) is included mainly because some older Unix tools and escape-sequence conventions (like\101 for capital A in a C string literal) still use it. Binary shows the raw 8-bit pattern, useful when reasoning about bitwise operations or serial protocols directly.

FAQ

Does ASCII really only go up to 127?
Yes — ASCII is a 7-bit code, so it only defines values 0-127. Anything above that (128-255) belongs to whichever 8-bit extension a particular system chose, not to ASCII itself.
What encoding is used for the 128-255 range on this page?
ISO-8859-1 (Latin-1), shown for reference. Windows-1252 is another common choice that differs specifically in positions 128-159, replacing control codes with printable punctuation and currency symbols.
How is this different from the Hex ↔ ASCII converter?
That tool converts a value you type in. This page is the full fixed reference table — every code point at once, for lookup or bookmarking.
g then:h homeb basee encodingc colorp programming