The ASCII table is a list of 128 characters, each matched to a number from 0 to 127. Computers store text as these numbers, so the table lets you look up any letter, digit, punctuation mark, or control instruction by its decimal or hex value.
Every letter you type, every password you set, and every line of code you read is stored inside a computer as a number. The system that made this possible is ASCII, short for American Standard Code for Information Interchange. It was created so that different machines could agree on what each number means. Without that agreement, a letter typed on one computer might show up as a completely different symbol on another.
This guide gives you the full chart, explains how to read it, and shows where these codes still matter today. You do not need any programming background to use it. If you can count to 127 and you can spot a letter on a keyboard, you can read the table.
What is ASCII in simple terms?
ASCII is a character encoding standard. That phrase sounds technical, but the idea is simple. A computer only understands numbers, so people needed a shared dictionary that says number 65 means the capital letter A, number 97 means the small letter a, and number 32 means a space. ASCII is that dictionary, and it covers 128 entries.
The first 32 entries, from 0 to 31, are control characters. They do not print anything on the screen. Instead, they give instructions, such as move to a new line, move to the next tab stop, or sound a bell. The next entries, from 32 to 126, are printable characters. These are the letters, digits, punctuation marks, and symbols you see on a standard keyboard. The final entry, 127, is the delete instruction.
One useful way to think about it is to compare it with a phone book. A phone book does not contain people, it contains names matched to numbers so you can reach people. In the same way, the ASCII table does not contain letters, it contains characters matched to numbers so computers can store and exchange them.
Why was ASCII created?
Before ASCII, computer makers used their own private codes. A machine from one company might store the letter A as one number, while a machine from another company stored it as a different number. Sending a document from one machine to another was unreliable, and the text often arrived scrambled.
Work on a shared standard began in the early 1960s, and ASCII was first published in 1963. It was later revised and became widely adopted through the 1970s and 1980s, as personal computers, printers, and networks spread. The standard gave every common English letter, digit, and punctuation mark a fixed number that all machines could use.
The history of the standard, including the committee work behind it and the later revisions, is documented in detail on the Wikipedia ASCII page, which is a good place to check dates and background if you want to go deeper. The key point for everyday use is simpler: ASCII solved a real communication problem, and its choices still shape how text works today.
How to read the table below
The complete table further down this page has four columns. The decimal column gives the familiar base-10 number, from 0 to 127. The hex column gives the same value in hexadecimal, the base-16 system programmers often use, where the digits run from 0 to 9 and then A to F. The character column shows what you see on screen, where there is something visible to show. The meaning column explains what the entry does or represents.
Here is how to use it with a real example. Suppose you want the code for the capital letter A. Find A in the character column and read across: the decimal value is 65 and the hex value is 41. Suppose instead you see the number 97 in a file or a program. Look it up in the decimal column and you find the small letter a. Once you know one row, you can read any row the same way.
There is also a pattern worth noticing. The capital letters run from 65 to 90, and the small letters run from 97 to 122. The gap of 32 between a capital letter and its small version is not an accident. In binary, the two versions differ by exactly one bit, which made converting between cases very easy for early machines. The digits run from 48 to 57, so the character for the digit 0 has the code 48, the digit 1 has 49, and so on. Punctuation sits in the gaps between these groups.
Hex values follow the same logic in a shorter form. The number 65 in decimal is 41 in hex, and the number 97 is 61 in hex. Programmers like hex because two hex digits can represent any value from 0 to 255, which matches one byte of computer memory. You do not need to convert hex in your head to use the table, but knowing that the hex column exists will help you when you meet codes written in that form.
What are control characters, and why do they still matter?
Control characters are the entries from 0 to 31, plus 127. They were designed for a world of printers, teletype machines, and early terminals, where a computer needed to tell a device what to do rather than what to print. Some of them feel old-fashioned now. The bell character, code 7, once rang a physical bell on a terminal. Others are still part of daily life, even if you never see them.
The most important control characters today are the newline, the carriage return, the tab, and the escape character. The newline, code 10, marks the end of a line of text. Every time you press Enter in a document, a newline character is stored in the file, even though you cannot see it. The carriage return, code 13, moves the cursor back to the start of a line. Different systems historically used these two in different combinations, which is why a text file moved between systems sometimes showed broken line endings.
The tab character, code 9, moves to the next tab stop and is still used to line up columns in plain text and to indent code. The escape character, code 27, began sequences that told terminals to change colour, move the cursor, or clear the screen. Modern terminal programs still use escape sequences for colours and formatting, so code 27 has never really retired.
Other control characters show up in specific jobs. The null character, code 0, marks the end of a text string in some programming languages. The backspace character, code 8, deletes the previous character. The form feed, code 12, once told a printer to start a new page and still appears as a page-break marker in some files. Knowing these names helps when you open a file and see strange symbols, or when an error message mentions a control code by name.
The complete ASCII table: control characters (0 to 31)
The first section of the table covers the control characters. The character column shows the standard three-letter abbreviation for each one, since these entries have no printable symbol. Read the meaning column to learn what each instruction was designed to do.
| Decimal | Hex | Character | Meaning |
|---|---|---|---|
| 0 | 00 | NUL | Null character |
| 1 | 01 | SOH | Start of heading |
| 2 | 02 | STX | Start of text |
| 3 | 03 | ETX | End of text |
| 4 | 04 | EOT | End of transmission |
| 5 | 05 | ENQ | Enquiry |
| 6 | 06 | ACK | Acknowledge |
| 7 | 07 | BEL | Bell |
| 8 | 08 | BS | Backspace |
| 9 | 09 | HT | Horizontal tab |
| 10 | 0A | LF | Line feed (newline) |
| 11 | 0B | VT | Vertical tab |
| 12 | 0C | FF | Form feed (new page) |
| 13 | 0D | CR | Carriage return |
| 14 | 0E | SO | Shift out |
| 15 | 0F | SI | Shift in |
| 16 | 10 | DLE | Data link escape |
| 17 | 11 | DC1 | Device control 1 |
| 18 | 12 | DC2 | Device control 2 |
| 19 | 13 | DC3 | Device control 3 |
| 20 | 14 | DC4 | Device control 4 |
| 21 | 15 | NAK | Negative acknowledge |
| 22 | 16 | SYN | Synchronous idle |
| 23 | 17 | ETB | End of transmission block |
| 24 | 18 | CAN | Cancel |
| 25 | 19 | EM | End of medium |
| 26 | 1A | SUB | Substitute |
| 27 | 1B | ESC | Escape |
| 28 | 1C | FS | File separator |
| 29 | 1D | GS | Group separator |
| 30 | 1E | RS | Record separator |
| 31 | 1F | US | Unit separator |
| 32 | 20 | Space | Space character |
| 33 | 21 | ! | Exclamation mark |
| 34 | 22 | “ | Double quote |
| 35 | 23 | # | Number sign |
| 36 | 24 | $ | Dollar sign |
| 37 | 25 | % | Percent sign |
| 38 | 26 | & | Ampersand |
| 39 | 27 | ‘ | Single quote (apostrophe) |
| 40 | 28 | ( | Left parenthesis |
| 41 | 29 | ) | Right parenthesis |
| 42 | 2A | * | Asterisk |
| 43 | 2B | + | Plus sign |
| 44 | 2C | , | Comma |
| 45 | 2D | – | Hyphen (minus) |
| 46 | 2E | . | Full stop (period) |
| 47 | 2F | / | Slash |
| 48 | 30 | 0 | Digit 0 |
| 49 | 31 | 1 | Digit 1 |
| 50 | 32 | 2 | Digit 2 |
| 51 | 33 | 3 | Digit 3 |
| 52 | 34 | 4 | Digit 4 |
| 53 | 35 | 5 | Digit 5 |
| 54 | 36 | 6 | Digit 6 |
| 55 | 37 | 7 | Digit 7 |
| 56 | 38 | 8 | Digit 8 |
| 57 | 39 | 9 | Digit 9 |
| 58 | 3A | : | Colon |
| 59 | 3B | ; | Semicolon |
| 60 | 3C | < | Less-than sign |
| 61 | 3D | = | Equals sign |
| 62 | 3E | > | Greater-than sign |
| 63 | 3F | ? | Question mark |
| 64 | 40 | @ | At sign |
| 65 | 41 | A | Capital letter A |
| 66 | 42 | B | Capital letter B |
| 67 | 43 | C | Capital letter C |
| 68 | 44 | D | Capital letter D |
| 69 | 45 | E | Capital letter E |
| 70 | 46 | F | Capital letter F |
| 71 | 47 | G | Capital letter G |
| 72 | 48 | H | Capital letter H |
| 73 | 49 | I | Capital letter I |
| 74 | 4A | J | Capital letter J |
| 75 | 4B | K | Capital letter K |
| 76 | 4C | L | Capital letter L |
| 77 | 4D | M | Capital letter M |
| 78 | 4E | N | Capital letter N |
| 79 | 4F | O | Capital letter O |
| 80 | 50 | P | Capital letter P |
| 81 | 51 | Q | Capital letter Q |
| 82 | 52 | R | Capital letter R |
| 83 | 53 | S | Capital letter S |
| 84 | 54 | T | Capital letter T |
| 85 | 55 | U | Capital letter U |
| 86 | 56 | V | Capital letter V |
| 87 | 57 | W | Capital letter W |
| 88 | 58 | X | Capital letter X |
| 89 | 59 | Y | Capital letter Y |
| 90 | 5A | Z | Capital letter Z |
| 91 | 5B | [ | Left square bracket |
| 92 | 5C | \ | Backslash |
| 93 | 5D | ] | Right square bracket |
| 94 | 5E | ^ | Caret |
| 95 | 5F | _ | Underscore |
| 96 | 60 | ` | Grave accent (backtick) |
| 97 | 61 | a | Small letter a |
| 98 | 62 | b | Small letter b |
| 99 | 63 | c | Small letter c |
| 100 | 64 | d | Small letter d |
| 101 | 65 | e | Small letter e |
| 102 | 66 | f | Small letter f |
| 103 | 67 | g | Small letter g |
| 104 | 68 | h | Small letter h |
| 105 | 69 | i | Small letter i |
| 106 | 6A | j | Small letter j |
| 107 | 6B | k | Small letter k |
| 108 | 6C | l | Small letter l |
| 109 | 6D | m | Small letter m |
| 110 | 6E | n | Small letter n |
| 111 | 6F | o | Small letter o |
| 112 | 70 | p | Small letter p |
| 113 | 71 | q | Small letter q |
| 114 | 72 | r | Small letter r |
| 115 | 73 | s | Small letter s |
| 116 | 74 | t | Small letter t |
| 117 | 75 | u | Small letter u |
| 118 | 76 | v | Small letter v |
| 119 | 77 | w | Small letter w |
| 120 | 78 | x | Small letter x |
| 121 | 79 | y | Small letter y |
| 122 | 7A | z | Small letter z |
| 123 | 7B | { | Left curly brace |
| 124 | 7C | | | Vertical bar |
| 125 | 7D | } | Right curly brace |
| 126 | 7E | ~ | Tilde |
| 127 | 7F | DEL | Delete |
Printable characters: the part you use every day
The printable range runs from 32 to 126, and it is the part of the table most people actually meet. It starts with the space character, code 32, which is easy to forget because it is invisible, yet it is one of the most common characters in any text. After the space come punctuation marks, then the digits, then more punctuation, then the capital letters, then a few more symbols, then the small letters, and finally a handful of brackets and marks.
This ordering explains several things you may have noticed without knowing why. In many computer systems, sorting text puts punctuation before digits and digits before letters, because sorting often follows code order. It also explains why a password rule that asks for an upper-case letter, a lower-case letter, a digit, and a symbol is really asking for characters from four different blocks of the table. The blocks are not random, they are the natural groups of the chart.
One detail that trips people up is the difference between the digit character and the number it represents. The digit 0 is stored as code 48, not as the number 0. If a program reads the character 5 from a keyboard, it gets code 53, and it must convert that code into the number 5 before it can do arithmetic with it. This is a common first lesson for new programmers, and the table is the tool that makes the conversion clear.
Another detail is the backslash, code 92. In many programming languages and file paths, the backslash starts a special sequence, such as a newline or a tab written as text. That is why you sometimes see double backslashes in file paths or code. The backslash itself is an ordinary printable character, but its job as an escape marker gives it extra importance.
What lies beyond 127?
The standard table stops at 127, but computers needed more characters for other languages, symbols, and currencies. The first answer was extended ASCII, which used values from 128 to 255 for extra characters. The problem was that different systems filled this extra range with different characters, so the old confusion returned in a new form. A document with accented letters or special symbols might display correctly on one machine and wrongly on another.
The modern answer is Unicode, a much larger system that includes ASCII as its first 128 entries. This is an important point: the first 128 Unicode characters are exactly the same as ASCII, with the same numbers. That is why old ASCII text still works perfectly inside modern systems. ASCII did not get replaced and thrown away, it became the foundation of the system that replaced it.
For everyday writing in English, ASCII is usually enough. For writing in other languages, for emoji, or for mathematical and scientific symbols, Unicode is needed. When you meet a symbol that is not on a standard keyboard, it almost certainly lives outside the ASCII range. The table in this guide covers the standard range, which is the part you will meet most often in code, file formats, and plain text.
How to use the table in real life
Here are practical ways people use this chart. A student learning to code can look up why the letter A behaves differently from the letter a in a program. A writer setting a password can check which symbols count as punctuation and which are letters or digits. A person fixing a broken text file can identify a hidden control character that is breaking the layout, such as a stray carriage return.
Programmers use the table when they convert between characters and numbers, when they sort text, and when they check whether a character is a letter, a digit, or a symbol. Web developers meet ASCII codes in web addresses, where a space becomes a code and special characters are written in a percent form based on their hex values. Data analysts meet it when they clean text files that came from older systems.
A simple exercise makes the table stick. Write your initials and look up each letter. Notice the gap of 32 between each capital letter and its small version. Then look up the digits in a year you remember, such as a birth year, and notice that each digit sits in the 48 to 57 block. After a few lookups, the pattern becomes familiar, and you will rarely need to check the most common letters again.
Common mistakes to avoid
The most common mistake is mixing up the character with its code. The digit 1 is not code 1, it is code 49. Code 1 is a control character called start of heading, which has nothing to do with the number one. The same trap applies to letters: the letter A is code 65, not code 1 or code 26.
Another mistake is assuming that every symbol on a modern keyboard is in the ASCII table. Symbols such as the euro sign, the pound sign in some contexts, curly quotes, and emoji are not ASCII characters. They belong to larger systems. If you cannot find a symbol in this table, that is usually the reason.
A third mistake is confusing decimal and hex values. The hex value 41 is not the number 41, it is the decimal number 65, the capital letter A. Always check which column you are reading. When in doubt, read the decimal column first, since it matches ordinary counting.
Does ASCII still matter today?
Yes, more than most people realise. Every modern text system builds on it. Programming languages, file formats, network protocols, and web addresses all use ASCII characters for their basic structure. When a web page loads, the tags and addresses behind it are ASCII. When a program reads a plain text file, the first 128 codes behave exactly as this table describes.
Learning the table also makes larger systems easier to understand. Unicode feels less mysterious once you know that its first block is ASCII. Character problems in files feel less frightening once you can name the hidden control character causing them. For anyone who works with text on a computer, even casually, this chart is a practical reference worth bookmarking.
If you enjoy turning plain letters into different styles for social media, bios, and messages, you can explore the free fancy text tools on the fancy text generator homepage, where the same letters are restyled in many decorative forms. And if you like code systems in general, the Morse code alphabet guide shows another famous way humans turned letters into signals, this time with dots and dashes instead of numbers. For messages with a playful look, the Discord text formatter shows how plain characters can be restyled for chat.
Frequently asked questions
What is ASCII in simple terms?
ASCII is a shared list that matches 128 characters to the numbers 0 to 127, so computers can store and exchange text. The letter A is 65, the small letter a is 97, and the space is 32.
How many characters are in the standard ASCII table?
There are 128 characters in the standard table, numbered from 0 to 127. The first 32 are control characters, the next 95 are printable characters, and the last entry is the delete instruction.
What is the difference between ASCII and Unicode?
ASCII covers 128 characters, mostly English letters, digits, and common symbols. Unicode is a much larger system that covers characters from languages around the world, plus symbols and emoji. The first 128 Unicode characters are identical to ASCII, so ASCII text works inside Unicode systems.
What are control characters in ASCII?
Control characters are the entries from 0 to 31, plus 127. They give instructions instead of printing a symbol, such as starting a new line, moving to a tab stop, or sounding a bell. The newline, tab, carriage return, and escape characters are still widely used today.
Why does the letter A have the number 65?
The number comes from the order chosen when the standard was written. Digits were placed first, then capital letters, then small letters, with punctuation in between. Capital A landed at 65, and the rest of the capital letters follow in order up to 90.
Is ASCII still used today?
Yes. ASCII forms the foundation of modern text handling. Programming languages, file formats, network protocols, and web addresses all rely on ASCII characters, and Unicode keeps the same first 128 entries.
What is the ASCII code for a space?
The space character has the decimal code 32 and the hex code 20. It is the first printable character in the table, and it is also one of the most common characters in any text.
One Response