FreeToGenerate.com

All 128 characters, including the 33 that print nothing.

128 characters

Matches the decimal value, the hex value, a single character, the name, the abbreviation, or any of the alternate names the standard gives.

Which control characters anything still uses

Counted across every text file in this site, its built HTML, and twelve public-domain books. Four of the thirty-three turned up at all, and two of those turned up twice.

LF · LINE FEED
434,063
CR · CARRIAGE RETURN
229,147
HT · CHARACTER TABULATION
3
BS · BACKSPACE
2

The other 29 did not occur once.

Control characters

DecHexOctBinaryCharName
00000000000000NULNULLnever seen
10100100000001SOHSTART OF HEADINGnever seen
20200200000010STXSTART OF TEXTnever seen
30300300000011ETXEND OF TEXTnever seen
40400400000100EOTEND OF TRANSMISSIONnever seen
50500500000101ENQENQUIRYnever seen
60600600000110ACKACKNOWLEDGEnever seen
70700700000111BELALERTnever seen
80801000001000BSBACKSPACE
90901100001001HTCHARACTER TABULATIONalso HORIZONTAL TABULATION
100A01200001010LFLINE FEEDalso NEW LINE, END OF LINE
110B01300001011VTLINE TABULATIONalso VERTICAL TABULATIONnever seen
120C01400001100FFFORM FEEDnever seen
130D01500001101CRCARRIAGE RETURN
140E01600001110SOSHIFT OUTalso LOCKING-SHIFT ONEnever seen
150F01700001111SISHIFT INalso LOCKING-SHIFT ZEROnever seen
161002000010000DLEDATA LINK ESCAPEnever seen
171102100010001DC1DEVICE CONTROL ONEnever seen
181202200010010DC2DEVICE CONTROL TWOnever seen
191302300010011DC3DEVICE CONTROL THREEnever seen
201402400010100DC4DEVICE CONTROL FOURnever seen
211502500010101NAKNEGATIVE ACKNOWLEDGEnever seen
221602600010110SYNSYNCHRONOUS IDLEnever seen
231702700010111ETBEND OF TRANSMISSION BLOCKnever seen
241803000011000CANCANCELnever seen
251903100011001EOMEND OF MEDIUMnever seen
261A03200011010SUBSUBSTITUTEnever seen
271B03300011011ESCESCAPEnever seen
281C03400011100FSINFORMATION SEPARATOR FOURalso FILE SEPARATORnever seen
291D03500011101GSINFORMATION SEPARATOR THREEalso GROUP SEPARATORnever seen
301E03600011110RSINFORMATION SEPARATOR TWOalso RECORD SEPARATORnever seen
311F03700011111USINFORMATION SEPARATOR ONEalso UNIT SEPARATORnever seen
1277F17701111111DELDELETEnever seen

Punctuation and symbols

DecHexOctBinaryCharName
322004000100000SPACE
332104100100001!EXCLAMATION MARK
342204200100010"QUOTATION MARK
352304300100011#NUMBER SIGN
362404400100100$DOLLAR SIGN
372504500100101%PERCENT SIGN
382604600100110&AMPERSAND
392704700100111'APOSTROPHE
402805000101000(LEFT PARENTHESIS
412905100101001)RIGHT PARENTHESIS
422A05200101010*ASTERISK
432B05300101011+PLUS SIGN
442C05400101100,COMMA
452D05500101101-HYPHEN-MINUS
462E05600101110.FULL STOP
472F05700101111/SOLIDUS
583A07200111010:COLON
593B07300111011;SEMICOLON
603C07400111100<LESS-THAN SIGN
613D07500111101=EQUALS SIGN
623E07600111110>GREATER-THAN SIGN
633F07700111111?QUESTION MARK
644010001000000@COMMERCIAL AT
915B13301011011[LEFT SQUARE BRACKET
925C13401011100\REVERSE SOLIDUS
935D13501011101]RIGHT SQUARE BRACKET
945E13601011110^CIRCUMFLEX ACCENT
955F13701011111_LOW LINE
966014001100000`GRAVE ACCENT
1237B17301111011{LEFT CURLY BRACKET
1247C17401111100|VERTICAL LINE
1257D17501111101}RIGHT CURLY BRACKET
1267E17601111110~TILDE

Space is the one printable character with an official abbreviation, SP — it prints nothing, so the standard gives it a short form the way it does for the controls.

Digits

DecHexOctBinaryCharName
4830060001100000DIGIT ZERO
4931061001100011DIGIT ONE
5032062001100102DIGIT TWO
5133063001100113DIGIT THREE
5234064001101004DIGIT FOUR
5335065001101015DIGIT FIVE
5436066001101106DIGIT SIX
5537067001101117DIGIT SEVEN
5638070001110008DIGIT EIGHT
5739071001110019DIGIT NINE

Uppercase letters

DecHexOctBinaryCharName
654110101000001ALATIN CAPITAL LETTER A
664210201000010BLATIN CAPITAL LETTER B
674310301000011CLATIN CAPITAL LETTER C
684410401000100DLATIN CAPITAL LETTER D
694510501000101ELATIN CAPITAL LETTER E
704610601000110FLATIN CAPITAL LETTER F
714710701000111GLATIN CAPITAL LETTER G
724811001001000HLATIN CAPITAL LETTER H
734911101001001ILATIN CAPITAL LETTER I
744A11201001010JLATIN CAPITAL LETTER J
754B11301001011KLATIN CAPITAL LETTER K
764C11401001100LLATIN CAPITAL LETTER L
774D11501001101MLATIN CAPITAL LETTER M
784E11601001110NLATIN CAPITAL LETTER N
794F11701001111OLATIN CAPITAL LETTER O
805012001010000PLATIN CAPITAL LETTER P
815112101010001QLATIN CAPITAL LETTER Q
825212201010010RLATIN CAPITAL LETTER R
835312301010011SLATIN CAPITAL LETTER S
845412401010100TLATIN CAPITAL LETTER T
855512501010101ULATIN CAPITAL LETTER U
865612601010110VLATIN CAPITAL LETTER V
875712701010111WLATIN CAPITAL LETTER W
885813001011000XLATIN CAPITAL LETTER X
895913101011001YLATIN CAPITAL LETTER Y
905A13201011010ZLATIN CAPITAL LETTER Z

Lowercase letters

DecHexOctBinaryCharName
976114101100001aLATIN SMALL LETTER A
986214201100010bLATIN SMALL LETTER B
996314301100011cLATIN SMALL LETTER C
1006414401100100dLATIN SMALL LETTER D
1016514501100101eLATIN SMALL LETTER E
1026614601100110fLATIN SMALL LETTER F
1036714701100111gLATIN SMALL LETTER G
1046815001101000hLATIN SMALL LETTER H
1056915101101001iLATIN SMALL LETTER I
1066A15201101010jLATIN SMALL LETTER J
1076B15301101011kLATIN SMALL LETTER K
1086C15401101100lLATIN SMALL LETTER L
1096D15501101101mLATIN SMALL LETTER M
1106E15601101110nLATIN SMALL LETTER N
1116F15701101111oLATIN SMALL LETTER O
1127016001110000pLATIN SMALL LETTER P
1137116101110001qLATIN SMALL LETTER Q
1147216201110010rLATIN SMALL LETTER R
1157316301110011sLATIN SMALL LETTER S
1167416401110100tLATIN SMALL LETTER T
1177516501110101uLATIN SMALL LETTER U
1187616601110110vLATIN SMALL LETTER V
1197716701110111wLATIN SMALL LETTER W
1207817001111000xLATIN SMALL LETTER X
1217917101111001yLATIN SMALL LETTER Y
1227A17201111010zLATIN SMALL LETTER Z

128 · 95 + 33

Also available in: Español · Português · Français · العربية

ASCII Table

Every ASCII character in decimal, hex, octal and binary — and a count of which control characters anything still uses.

What is the ASCII table?

ASCII assigns a number from 0 to 127 to each of 128 characters. Ninety-five of them are printable: the space, the digits, the two alphabets and the punctuation on a US keyboard. The other thirty-three print nothing at all. They are control characters, and they are the half of the table that every reference lists and nobody explains.

The split is not a matter of opinion. In the Unicode Character Database, those thirty-three have the literal name <control> and their real names live in a separate aliases file. This page is generated from both, so the names, the abbreviations and the alternate names are the standard's own rather than anyone's recollection.

Everything else on a modern computer is built on top of this. UTF-8 was designed so that its first 128 code points are exactly ASCII, byte for byte, which is why a plain English text file is simultaneously valid ASCII and valid UTF-8 and has been for decades.

How to use the ASCII table

  1. Search however you happen to be thinking. Type 65, or 0x41, or the letter A itself, or carriage, or ESC. Decimal values, hex values, single characters, names, abbreviations and alternate names all match.
  2. Read across for the encoding you need. Every row carries decimal, hex, octal and eight-bit binary, zero-padded so columns line up when you copy them out. The copy button gives you the character; for the controls, which have no character, it gives the hex escape.
  3. Look at the control characters section first. It is the part with the surprising numbers, and it explains why a Windows line ending is two bytes rather than one.

Four of the thirty-three control characters are still used

The usual way to describe control characters is a list of names with no indication of which ones matter. Counting is more useful, so we counted. Across 9,760 text files and 127,721,432 characters — this entire website, its built HTML output, and twelve public-domain books — exactly four of the thirty-three appear at all.

Line feed occurs 434,063 times and carriage return 229,147. Tab appears three times and backspace twice, both of them inside prose describing them. The remaining twenty-nine do not occur once: not NUL, not the bell, not escape, not delete, not any of the ten transmission controls or the four device controls or the four information separators.

That is because they were instructions to a machine that no longer exists. A teletype was a typewriter on a wire, and the codes told it what to do physically: ring the bell, punch a tape, stop reading, start listening. Two of them survived because two of them moved paper. Carriage return slid the carriage back to the left margin; line feed rolled the platen up one line. A teletype needed both to start a new line, which is why a Windows line ending is still two bytes and why moving a file between operating systems can still ruin it.

The information separators are the saddest case. ASCII contains four characters — file, group, record and unit separator — designed precisely for the job that CSV does badly, with none of the quoting and escaping problems that make CSV parsing a minefield. They have been sitting at 0x1C to 0x1F since 1963 and essentially nothing uses them.

The standard does not agree with itself either

Nine ASCII characters carry more than one official name, and the table shows all of them. The most consequential is 0x0A, which the Unicode database lists as LINE FEED, NEW LINE and END OF LINE. Three names in one file for the character nobody can agree how to use is a fair summary of why line endings are a mess: the standard itself never settled whether it advances the paper or ends the line.

Tab is CHARACTER TABULATION and also HORIZONTAL TABULATION; 0x0B is LINE TABULATION and also VERTICAL TABULATION. Shift out and shift in are also LOCKING-SHIFT ONE and LOCKING-SHIFT ZERO, from a character-set switching scheme almost nobody encounters now.

One boundary case is worth knowing. Space is printable — the database names it SPACE, not <control> — yet it is the one printable character with an official abbreviation, SP, because it prints nothing visible and tables need something to show. It sits with the punctuation here for that reason.

Honest limits

The usage count is a measurement of one corpus, not a law. This site is TypeScript, HTML and English prose, so it says a great deal about what modern web source looks like and nothing about what a serial protocol or a point-of-sale terminal emits. Software that talks to a printer, a barcode scanner or a mainframe absolutely still uses these codes — that is where the device controls and transmission controls live on. What the number does establish is that they have vanished from ordinary text.

ASCII is also only the first 128 code points. Anything accented, anything in another script, every emoji and the vast majority of punctuation a real document uses are outside it. If a character is not on this page, ASCII simply has no number for it, and you want UTF-8 — which begins by agreeing with this table exactly and then keeps going.

Finally, the escape character is a special case worth flagging. It never appears in our corpus, but it is far from dead: it opens the terminal escape sequences that colour every command-line tool. It does not show up in stored text because it belongs to the wire between a program and a terminal rather than to files.

Why is it free?

Because it is a table of public facts. The page is static text with a search box that filters it in your browser — nothing is uploaded, nothing is stored, and no server is involved in reading it.

So there is no account, no sign-up and nothing held back. The underlying data is the Unicode Character Database, which anyone can download, and the script that turns it into this page is in the repository alongside it.