ASCII Table — All 128 Characters
Every ASCII character in decimal, hex, octal and binary, including the 33 control characters.
| Dec | Hex | Oct | Binary | Char | Abbr | Description | HTML | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0x00 | 0000 | 00000000 | — | NUL | Null | � | |
| 1 | 0x01 | 0001 | 00000001 | — | SOH | Start of Heading |  | |
| 2 | 0x02 | 0002 | 00000010 | — | STX | Start of Text |  | |
| 3 | 0x03 | 0003 | 00000011 | — | ETX | End of Text |  | |
| 4 | 0x04 | 0004 | 00000100 | — | EOT | End of Transmission |  | |
| 5 | 0x05 | 0005 | 00000101 | — | ENQ | Enquiry |  | |
| 6 | 0x06 | 0006 | 00000110 | — | ACK | Acknowledge |  | |
| 7 | 0x07 | 0007 | 00000111 | — | BEL | Bell |  | |
| 8 | 0x08 | 0010 | 00001000 | — | BS | Backspace |  | |
| 9 | 0x09 | 0011 | 00001001 | — | HT | Horizontal Tab | 	 | |
| 10 | 0x0A | 0012 | 00001010 | — | LF | Line Feed | | |
| 11 | 0x0B | 0013 | 00001011 | — | VT | Vertical Tab |  | |
| 12 | 0x0C | 0014 | 00001100 | — | FF | Form Feed |  | |
| 13 | 0x0D | 0015 | 00001101 | — | CR | Carriage Return | | |
| 14 | 0x0E | 0016 | 00001110 | — | SO | Shift Out |  | |
| 15 | 0x0F | 0017 | 00001111 | — | SI | Shift In |  | |
| 16 | 0x10 | 0020 | 00010000 | — | DLE | Data Link Escape |  | |
| 17 | 0x11 | 0021 | 00010001 | — | DC1 | Device Control 1 (XON) |  | |
| 18 | 0x12 | 0022 | 00010010 | — | DC2 | Device Control 2 |  | |
| 19 | 0x13 | 0023 | 00010011 | — | DC3 | Device Control 3 (XOFF) |  | |
| 20 | 0x14 | 0024 | 00010100 | — | DC4 | Device Control 4 |  | |
| 21 | 0x15 | 0025 | 00010101 | — | NAK | Negative Acknowledge |  | |
| 22 | 0x16 | 0026 | 00010110 | — | SYN | Synchronous Idle |  | |
| 23 | 0x17 | 0027 | 00010111 | — | ETB | End of Transmission Block |  | |
| 24 | 0x18 | 0030 | 00011000 | — | CAN | Cancel |  | |
| 25 | 0x19 | 0031 | 00011001 | — | EM | End of Medium |  | |
| 26 | 0x1A | 0032 | 00011010 | — | SUB | Substitute |  | |
| 27 | 0x1B | 0033 | 00011011 | — | ESC | Escape |  | |
| 28 | 0x1C | 0034 | 00011100 | — | FS | File Separator |  | |
| 29 | 0x1D | 0035 | 00011101 | — | GS | Group Separator |  | |
| 30 | 0x1E | 0036 | 00011110 | — | RS | Record Separator |  | |
| 31 | 0x1F | 0037 | 00011111 | — | US | Unit Separator |  | |
| 32 | 0x20 | 0040 | 00100000 | |||||
| 33 | 0x21 | 0041 | 00100001 | ! | ! | |||
| 34 | 0x22 | 0042 | 00100010 | " | " | " | ||
| 35 | 0x23 | 0043 | 00100011 | # | # | |||
| 36 | 0x24 | 0044 | 00100100 | $ | $ | |||
| 37 | 0x25 | 0045 | 00100101 | % | % | |||
| 38 | 0x26 | 0046 | 00100110 | & | & | & | ||
| 39 | 0x27 | 0047 | 00100111 | ' | ' | |||
| 40 | 0x28 | 0050 | 00101000 | ( | ( | |||
| 41 | 0x29 | 0051 | 00101001 | ) | ) | |||
| 42 | 0x2A | 0052 | 00101010 | * | * | |||
| 43 | 0x2B | 0053 | 00101011 | + | + | |||
| 44 | 0x2C | 0054 | 00101100 | , | , | |||
| 45 | 0x2D | 0055 | 00101101 | - | - | |||
| 46 | 0x2E | 0056 | 00101110 | . | . | |||
| 47 | 0x2F | 0057 | 00101111 | / | / | |||
| 48 | 0x30 | 0060 | 00110000 | 0 | 0 | |||
| 49 | 0x31 | 0061 | 00110001 | 1 | 1 | |||
| 50 | 0x32 | 0062 | 00110010 | 2 | 2 | |||
| 51 | 0x33 | 0063 | 00110011 | 3 | 3 | |||
| 52 | 0x34 | 0064 | 00110100 | 4 | 4 | |||
| 53 | 0x35 | 0065 | 00110101 | 5 | 5 | |||
| 54 | 0x36 | 0066 | 00110110 | 6 | 6 | |||
| 55 | 0x37 | 0067 | 00110111 | 7 | 7 | |||
| 56 | 0x38 | 0070 | 00111000 | 8 | 8 | |||
| 57 | 0x39 | 0071 | 00111001 | 9 | 9 | |||
| 58 | 0x3A | 0072 | 00111010 | : | : | |||
| 59 | 0x3B | 0073 | 00111011 | ; | ; | |||
| 60 | 0x3C | 0074 | 00111100 | < | < | < | ||
| 61 | 0x3D | 0075 | 00111101 | = | = | |||
| 62 | 0x3E | 0076 | 00111110 | > | > | > | ||
| 63 | 0x3F | 0077 | 00111111 | ? | ? | |||
| 64 | 0x40 | 0100 | 01000000 | @ | @ | |||
| 65 | 0x41 | 0101 | 01000001 | A | A | |||
| 66 | 0x42 | 0102 | 01000010 | B | B | |||
| 67 | 0x43 | 0103 | 01000011 | C | C | |||
| 68 | 0x44 | 0104 | 01000100 | D | D | |||
| 69 | 0x45 | 0105 | 01000101 | E | E | |||
| 70 | 0x46 | 0106 | 01000110 | F | F | |||
| 71 | 0x47 | 0107 | 01000111 | G | G | |||
| 72 | 0x48 | 0110 | 01001000 | H | H | |||
| 73 | 0x49 | 0111 | 01001001 | I | I | |||
| 74 | 0x4A | 0112 | 01001010 | J | J | |||
| 75 | 0x4B | 0113 | 01001011 | K | K | |||
| 76 | 0x4C | 0114 | 01001100 | L | L | |||
| 77 | 0x4D | 0115 | 01001101 | M | M | |||
| 78 | 0x4E | 0116 | 01001110 | N | N | |||
| 79 | 0x4F | 0117 | 01001111 | O | O | |||
| 80 | 0x50 | 0120 | 01010000 | P | P | |||
| 81 | 0x51 | 0121 | 01010001 | Q | Q | |||
| 82 | 0x52 | 0122 | 01010010 | R | R | |||
| 83 | 0x53 | 0123 | 01010011 | S | S | |||
| 84 | 0x54 | 0124 | 01010100 | T | T | |||
| 85 | 0x55 | 0125 | 01010101 | U | U | |||
| 86 | 0x56 | 0126 | 01010110 | V | V | |||
| 87 | 0x57 | 0127 | 01010111 | W | W | |||
| 88 | 0x58 | 0130 | 01011000 | X | X | |||
| 89 | 0x59 | 0131 | 01011001 | Y | Y | |||
| 90 | 0x5A | 0132 | 01011010 | Z | Z | |||
| 91 | 0x5B | 0133 | 01011011 | [ | [ | |||
| 92 | 0x5C | 0134 | 01011100 | \ | \ | |||
| 93 | 0x5D | 0135 | 01011101 | ] | ] | |||
| 94 | 0x5E | 0136 | 01011110 | ^ | ^ | |||
| 95 | 0x5F | 0137 | 01011111 | _ | _ | |||
| 96 | 0x60 | 0140 | 01100000 | ` | ` | |||
| 97 | 0x61 | 0141 | 01100001 | a | a | |||
| 98 | 0x62 | 0142 | 01100010 | b | b | |||
| 99 | 0x63 | 0143 | 01100011 | c | c | |||
| 100 | 0x64 | 0144 | 01100100 | d | d | |||
| 101 | 0x65 | 0145 | 01100101 | e | e | |||
| 102 | 0x66 | 0146 | 01100110 | f | f | |||
| 103 | 0x67 | 0147 | 01100111 | g | g | |||
| 104 | 0x68 | 0150 | 01101000 | h | h | |||
| 105 | 0x69 | 0151 | 01101001 | i | i | |||
| 106 | 0x6A | 0152 | 01101010 | j | j | |||
| 107 | 0x6B | 0153 | 01101011 | k | k | |||
| 108 | 0x6C | 0154 | 01101100 | l | l | |||
| 109 | 0x6D | 0155 | 01101101 | m | m | |||
| 110 | 0x6E | 0156 | 01101110 | n | n | |||
| 111 | 0x6F | 0157 | 01101111 | o | o | |||
| 112 | 0x70 | 0160 | 01110000 | p | p | |||
| 113 | 0x71 | 0161 | 01110001 | q | q | |||
| 114 | 0x72 | 0162 | 01110010 | r | r | |||
| 115 | 0x73 | 0163 | 01110011 | s | s | |||
| 116 | 0x74 | 0164 | 01110100 | t | t | |||
| 117 | 0x75 | 0165 | 01110101 | u | u | |||
| 118 | 0x76 | 0166 | 01110110 | v | v | |||
| 119 | 0x77 | 0167 | 01110111 | w | w | |||
| 120 | 0x78 | 0170 | 01111000 | x | x | |||
| 121 | 0x79 | 0171 | 01111001 | y | y | |||
| 122 | 0x7A | 0172 | 01111010 | z | z | |||
| 123 | 0x7B | 0173 | 01111011 | { | { | |||
| 124 | 0x7C | 0174 | 01111100 | | | | | |||
| 125 | 0x7D | 0175 | 01111101 | } | } | |||
| 126 | 0x7E | 0176 | 01111110 | ~ | ~ | |||
| 127 | 0x7F | 0177 | 01111111 | — | DEL | Delete |  |
The layout is deliberate
ASCII's arrangement looks arbitrary and is not. The 1963 committee chose it so that common operations become single bit manipulations.
Case conversion is one bit. A is 0x41 and a is 0x61 — they differ only in bit 5. Uppercasing is c & ~0x20; lowercasing is c | 0x20. This is why case-insensitive comparison was cheap on hardware that could not afford a lookup table.
Digits are their own value. '0' is 0x30, so converting a digit character to its number is c - '0', and the low four bits of any digit character are the digit itself.
Control characters map to letters. Ctrl+A is 0x01, Ctrl+C is 0x03, Ctrl+Z is 0x1A — each control code is the letter with bits 6 and 7 cleared. That is literally what the Control key did on a teletype.
ASCII is 7 bits, giving 128 values. The eighth bit was originally a parity bit. When it was freed for data, every region invented a different set of 128 extra characters — Latin-1, Windows-1252, KOI8-R, Shift-JIS — which is the entire origin of mojibake. UTF-8 resolved it by being backwards compatible: every ASCII byte is itself in UTF-8, so ASCII text is valid UTF-8 unchanged.
Control characters still in use
Most of the 33 are historical. These you will actually meet:
| Dec | Hex | Name | Escape | Still used for |
|---|---|---|---|---|
| 0 | 00 | NUL | \0 | String terminator in C; a null byte in a filename is a classic injection vector |
| 7 | 07 | BEL | \a | Terminal bell — still audible in most terminals |
| 8 | 08 | BS | \b | Backspace |
| 9 | 09 | TAB | \t | Indentation, TSV delimiter |
| 10 | 0A | LF | \n | Line ending on Unix and macOS |
| 12 | 0C | FF | \f | Page break in printed output |
| 13 | 0D | CR | \r | Paired with LF on Windows; on its own, terminal line rewriting |
| 27 | 1B | ESC | \e | Starts every ANSI escape sequence — colours, cursor movement |
| 127 | 7F | DEL | — | Originally punched-out tape; now the Delete key |
CR and LF together (\r\n) are the Windows line ending, inherited from teletypes where carriage return and line feed were two distinct physical actions. This is the source of most cross-platform diff noise.
About
The ASCII Table lists all 128 characters defined by the American Standard Code for Information Interchange, including 32 non-printable control characters (NUL, BEL, CR, LF, etc.) and 96 printable characters. Each entry shows the decimal, hexadecimal, octal, and binary representations — essential for low-level programming, network protocols, and debugging binary data.
How to use
- 1 Browse the full table or filter between Control characters and Printable characters.
- 2 Search for a specific character or its decimal code.
- 3 Click any row to copy the character or its code.
- What is ASCII and how many characters does it define?
- ASCII (American Standard Code for Information Interchange) defines 128 characters: 32 non-printable control characters (0–31), 95 printable characters including letters, digits, and symbols (32–126), and one DEL character (127). It was standardised in 1963 and remains the foundation of modern text encoding — every UTF-8 byte below 128 is identical to its ASCII value.
- What are ASCII control characters and what do they do?
- Control characters (codes 0–31) are non-printable characters that once controlled printers and terminals. Common ones still used today: NUL (0) — null terminator in C strings; TAB (9) — horizontal tab; LF (10) — line feed / newline on Unix; CR (13) — carriage return on Windows (CRLF line endings); ESC (27) — escape sequences in terminals and ANSI codes; DEL (127) — delete.
- Why does ASCII use decimal 65 for the letter A?
- The assignment was a deliberate design choice. Uppercase letters start at 65 (0x41), lowercase at 97 (0x61). The difference between any uppercase and its lowercase counterpart is exactly 32 — a single bit (bit 5) — making case conversion trivially cheap in hardware. Digits start at 48 (0x30), so the numeric value of digit n is its ASCII code minus 48.
More in Reference & Data
See all reference & data.