The 128 codes, generated
ASCII table
The complete ASCII table, 0 to 127, with decimal, hexadecimal, binary and the name of each control character. The 95 printable characters come straight from the browser's character table; the33 control names are the ones recorded in the Unicode character database.
How to read the table
Each row is one code. The first column is the decimal number, the form seen in books and error messages. Beside it sit the same number in hexadecimal, as it appears in programming tools, and in binary, as it exists in memory. Capital A is code 65, 41 in hex and01000001 in binary; lowercase a is 97, 32 higher, and the difference between them is a single bit. The digit zero is code 48, not zero: the table numbers symbols, not values.
The 33 control codes, 0 to 31 and the last one, 127, print nothing. They are commands for the device receiving the text, almost always a teletype: advance the line, return the carriage, ring the bell, delete. They appear in the table with the abbreviation used since the sixties and the full name, which is the name the Unicode standard records for the same code. Code zero, NUL, still marks the end of a string in several programming languages.
What the table lacks is any letter outside the English alphabet. Cedillas, tildes and accents were left to national extensions and, later, to Unicode. The binary page shows how UTF-8 fits those characters in without changing a single code of this table.
Table
| Dec | Hex | Binary | Character | Name |
|---|---|---|---|---|
| 0 | 00 | 00000000 | NUL | NULL |
| 1 | 01 | 00000001 | SOH | START OF HEADING |
| 2 | 02 | 00000010 | STX | START OF TEXT |
| 3 | 03 | 00000011 | ETX | END OF TEXT |
| 4 | 04 | 00000100 | EOT | END OF TRANSMISSION |
| 5 | 05 | 00000101 | ENQ | ENQUIRY |
| 6 | 06 | 00000110 | ACK | ACKNOWLEDGE |
| 7 | 07 | 00000111 | BEL | ALERT |
| 8 | 08 | 00001000 | BS | BACKSPACE |
| 9 | 09 | 00001001 | HT | CHARACTER TABULATION |
| 10 | 0A | 00001010 | LF | LINE FEED |
| 11 | 0B | 00001011 | VT | LINE TABULATION |
| 12 | 0C | 00001100 | FF | FORM FEED |
| 13 | 0D | 00001101 | CR | CARRIAGE RETURN |
| 14 | 0E | 00001110 | SO | SHIFT OUT |
| 15 | 0F | 00001111 | SI | SHIFT IN |
| 16 | 10 | 00010000 | DLE | DATA LINK ESCAPE |
| 17 | 11 | 00010001 | DC1 | DEVICE CONTROL ONE |
| 18 | 12 | 00010010 | DC2 | DEVICE CONTROL TWO |
| 19 | 13 | 00010011 | DC3 | DEVICE CONTROL THREE |
| 20 | 14 | 00010100 | DC4 | DEVICE CONTROL FOUR |
| 21 | 15 | 00010101 | NAK | NEGATIVE ACKNOWLEDGE |
| 22 | 16 | 00010110 | SYN | SYNCHRONOUS IDLE |
| 23 | 17 | 00010111 | ETB | END OF TRANSMISSION BLOCK |
| 24 | 18 | 00011000 | CAN | CANCEL |
| 25 | 19 | 00011001 | EM | END OF MEDIUM |
| 26 | 1A | 00011010 | SUB | SUBSTITUTE |
| 27 | 1B | 00011011 | ESC | ESCAPE |
| 28 | 1C | 00011100 | FS | INFORMATION SEPARATOR FOUR |
| 29 | 1D | 00011101 | GS | INFORMATION SEPARATOR THREE |
| 30 | 1E | 00011110 | RS | INFORMATION SEPARATOR TWO |
| 31 | 1F | 00011111 | US | INFORMATION SEPARATOR ONE |
| 32 | 20 | 00100000 | SP | SPACE |
| 33 | 21 | 00100001 | ! | |
| 34 | 22 | 00100010 | " | |
| 35 | 23 | 00100011 | # | |
| 36 | 24 | 00100100 | $ | |
| 37 | 25 | 00100101 | % | |
| 38 | 26 | 00100110 | & | |
| 39 | 27 | 00100111 | ' | |
| 40 | 28 | 00101000 | ( | |
| 41 | 29 | 00101001 | ) | |
| 42 | 2A | 00101010 | * | |
| 43 | 2B | 00101011 | + | |
| 44 | 2C | 00101100 | , | |
| 45 | 2D | 00101101 | - | |
| 46 | 2E | 00101110 | . | |
| 47 | 2F | 00101111 | / | |
| 48 | 30 | 00110000 | 0 | |
| 49 | 31 | 00110001 | 1 | |
| 50 | 32 | 00110010 | 2 | |
| 51 | 33 | 00110011 | 3 | |
| 52 | 34 | 00110100 | 4 | |
| 53 | 35 | 00110101 | 5 | |
| 54 | 36 | 00110110 | 6 | |
| 55 | 37 | 00110111 | 7 | |
| 56 | 38 | 00111000 | 8 | |
| 57 | 39 | 00111001 | 9 | |
| 58 | 3A | 00111010 | : | |
| 59 | 3B | 00111011 | ; | |
| 60 | 3C | 00111100 | < | |
| 61 | 3D | 00111101 | = | |
| 62 | 3E | 00111110 | > | |
| 63 | 3F | 00111111 | ? | |
| 64 | 40 | 01000000 | @ | |
| 65 | 41 | 01000001 | A | |
| 66 | 42 | 01000010 | B | |
| 67 | 43 | 01000011 | C | |
| 68 | 44 | 01000100 | D | |
| 69 | 45 | 01000101 | E | |
| 70 | 46 | 01000110 | F | |
| 71 | 47 | 01000111 | G | |
| 72 | 48 | 01001000 | H | |
| 73 | 49 | 01001001 | I | |
| 74 | 4A | 01001010 | J | |
| 75 | 4B | 01001011 | K | |
| 76 | 4C | 01001100 | L | |
| 77 | 4D | 01001101 | M | |
| 78 | 4E | 01001110 | N | |
| 79 | 4F | 01001111 | O | |
| 80 | 50 | 01010000 | P | |
| 81 | 51 | 01010001 | Q | |
| 82 | 52 | 01010010 | R | |
| 83 | 53 | 01010011 | S | |
| 84 | 54 | 01010100 | T | |
| 85 | 55 | 01010101 | U | |
| 86 | 56 | 01010110 | V | |
| 87 | 57 | 01010111 | W | |
| 88 | 58 | 01011000 | X | |
| 89 | 59 | 01011001 | Y | |
| 90 | 5A | 01011010 | Z | |
| 91 | 5B | 01011011 | [ | |
| 92 | 5C | 01011100 | \ | |
| 93 | 5D | 01011101 | ] | |
| 94 | 5E | 01011110 | ^ | |
| 95 | 5F | 01011111 | _ | |
| 96 | 60 | 01100000 | ` | |
| 97 | 61 | 01100001 | a | |
| 98 | 62 | 01100010 | b | |
| 99 | 63 | 01100011 | c | |
| 100 | 64 | 01100100 | d | |
| 101 | 65 | 01100101 | e | |
| 102 | 66 | 01100110 | f | |
| 103 | 67 | 01100111 | g | |
| 104 | 68 | 01101000 | h | |
| 105 | 69 | 01101001 | i | |
| 106 | 6A | 01101010 | j | |
| 107 | 6B | 01101011 | k | |
| 108 | 6C | 01101100 | l | |
| 109 | 6D | 01101101 | m | |
| 110 | 6E | 01101110 | n | |
| 111 | 6F | 01101111 | o | |
| 112 | 70 | 01110000 | p | |
| 113 | 71 | 01110001 | q | |
| 114 | 72 | 01110010 | r | |
| 115 | 73 | 01110011 | s | |
| 116 | 74 | 01110100 | t | |
| 117 | 75 | 01110101 | u | |
| 118 | 76 | 01110110 | v | |
| 119 | 77 | 01110111 | w | |
| 120 | 78 | 01111000 | x | |
| 121 | 79 | 01111001 | y | |
| 122 | 7A | 01111010 | z | |
| 123 | 7B | 01111011 | { | |
| 124 | 7C | 01111100 | | | |
| 125 | 7D | 01111101 | } | |
| 126 | 7E | 01111110 | ~ | |
| 127 | 7F | 01111111 | DEL | DELETE |
The control names and where they come from
The control abbreviations are those of the 1967 ASCII table itself, the ones in any terminal manual. The full name beside each is the one recorded in the Unicode character database for the same code. In one case the historical abbreviation and Unicode's differ, and the table keeps the historical one, which is the one readers look for.
Frequently asked
What is the ASCII table?
The agreement, first published in 1963 and completed with the lowercase letters in 1967, that gave a number from 0 to 127 to every letter of the English alphabet, the digits, punctuation and 33 control codes. Capital A is code 65, lowercase a is 97, the space is 32. Nearly every text encoding in use today begins with those 128 codes.
What are the control characters?
The 33 codes that print nothing and instead command the device: LF (LINE FEED) moves to a new line, CR (CARRIAGE RETURN) returns to the start of the line, ESC (ESCAPE) begins a command sequence, BEL (ALERT) rang the terminal's bell. The names come from the teletypes and paper tapes of the sixties, and some are still in daily use, like the line feed.
Where are the accented letters?
Outside the table. ASCII has only the letters of English, and each country invented a different extension for the rest of the byte, which produced the familiar garbled text. Unicode settled it by numbering every character of every script, and UTF-8 writes those numbers so that the 128 ASCII codes stay exactly as they were. The binary page shows how an accent becomes two bytes.
How do I convert a letter to its ASCII code?
Find the letter in the table and read the decimal, the hexadecimal or the binary, whichever you need. The box at the top does it for a whole text: Hi with an exclamation mark becomes 72 105 33, one code per character. Characters outside the table, such as accented letters, are left out and the box says so.