ASCII table
All 128 ASCII codes in decimal, hex, octal and binary, searchable.
| Dec | Hex | Oct | Binary | Char | Name | Description |
|---|---|---|---|---|---|---|
| 0 | 0x00 | 000 | 00000000 | NUL | NUL | Null |
| 1 | 0x01 | 001 | 00000001 | SOH | SOH | Start of heading |
| 2 | 0x02 | 002 | 00000010 | STX | STX | Start of text |
| 3 | 0x03 | 003 | 00000011 | ETX | ETX | End of text |
| 4 | 0x04 | 004 | 00000100 | EOT | EOT | End of transmission |
| 5 | 0x05 | 005 | 00000101 | ENQ | ENQ | Enquiry |
| 6 | 0x06 | 006 | 00000110 | ACK | ACK | Acknowledge |
| 7 | 0x07 | 007 | 00000111 | BEL | BEL | Bell |
| 8 | 0x08 | 010 | 00001000 | BS | BS | Backspace |
| 9 | 0x09 | 011 | 00001001 | HT | HT | Horizontal tab |
| 10 | 0x0A | 012 | 00001010 | LF | LF | Line feed |
| 11 | 0x0B | 013 | 00001011 | VT | VT | Vertical tab |
| 12 | 0x0C | 014 | 00001100 | FF | FF | Form feed |
| 13 | 0x0D | 015 | 00001101 | CR | CR | Carriage return |
| 14 | 0x0E | 016 | 00001110 | SO | SO | Shift out |
| 15 | 0x0F | 017 | 00001111 | SI | SI | Shift in |
| 16 | 0x10 | 020 | 00010000 | DLE | DLE | Data link escape |
| 17 | 0x11 | 021 | 00010001 | DC1 | DC1 | Device control 1 (XON) |
| 18 | 0x12 | 022 | 00010010 | DC2 | DC2 | Device control 2 |
| 19 | 0x13 | 023 | 00010011 | DC3 | DC3 | Device control 3 (XOFF) |
| 20 | 0x14 | 024 | 00010100 | DC4 | DC4 | Device control 4 |
| 21 | 0x15 | 025 | 00010101 | NAK | NAK | Negative acknowledge |
| 22 | 0x16 | 026 | 00010110 | SYN | SYN | Synchronous idle |
| 23 | 0x17 | 027 | 00010111 | ETB | ETB | End of block |
| 24 | 0x18 | 030 | 00011000 | CAN | CAN | Cancel |
| 25 | 0x19 | 031 | 00011001 | EM | EM | End of medium |
| 26 | 0x1A | 032 | 00011010 | SUB | SUB | Substitute |
| 27 | 0x1B | 033 | 00011011 | ESC | ESC | Escape |
| 28 | 0x1C | 034 | 00011100 | FS | FS | File separator |
| 29 | 0x1D | 035 | 00011101 | GS | GS | Group separator |
| 30 | 0x1E | 036 | 00011110 | RS | RS | Record separator |
| 31 | 0x1F | 037 | 00011111 | US | US | Unit separator |
| 32 | 0x20 | 040 | 00100000 | SP | Space | |
| 33 | 0x21 | 041 | 00100001 | ! | ! | |
| 34 | 0x22 | 042 | 00100010 | " | " | |
| 35 | 0x23 | 043 | 00100011 | # | # | |
| 36 | 0x24 | 044 | 00100100 | $ | $ | |
| 37 | 0x25 | 045 | 00100101 | % | % | |
| 38 | 0x26 | 046 | 00100110 | & | & | |
| 39 | 0x27 | 047 | 00100111 | ' | ' | |
| 40 | 0x28 | 050 | 00101000 | ( | ( | |
| 41 | 0x29 | 051 | 00101001 | ) | ) | |
| 42 | 0x2A | 052 | 00101010 | * | * | |
| 43 | 0x2B | 053 | 00101011 | + | + | |
| 44 | 0x2C | 054 | 00101100 | , | , | |
| 45 | 0x2D | 055 | 00101101 | - | - | |
| 46 | 0x2E | 056 | 00101110 | . | . | |
| 47 | 0x2F | 057 | 00101111 | / | / | |
| 48 | 0x30 | 060 | 00110000 | 0 | 0 | |
| 49 | 0x31 | 061 | 00110001 | 1 | 1 | |
| 50 | 0x32 | 062 | 00110010 | 2 | 2 | |
| 51 | 0x33 | 063 | 00110011 | 3 | 3 | |
| 52 | 0x34 | 064 | 00110100 | 4 | 4 | |
| 53 | 0x35 | 065 | 00110101 | 5 | 5 | |
| 54 | 0x36 | 066 | 00110110 | 6 | 6 | |
| 55 | 0x37 | 067 | 00110111 | 7 | 7 | |
| 56 | 0x38 | 070 | 00111000 | 8 | 8 | |
| 57 | 0x39 | 071 | 00111001 | 9 | 9 | |
| 58 | 0x3A | 072 | 00111010 | : | : | |
| 59 | 0x3B | 073 | 00111011 | ; | ; | |
| 60 | 0x3C | 074 | 00111100 | < | < | |
| 61 | 0x3D | 075 | 00111101 | = | = | |
| 62 | 0x3E | 076 | 00111110 | > | > | |
| 63 | 0x3F | 077 | 00111111 | ? | ? | |
| 64 | 0x40 | 100 | 01000000 | @ | @ | |
| 65 | 0x41 | 101 | 01000001 | A | A | |
| 66 | 0x42 | 102 | 01000010 | B | B | |
| 67 | 0x43 | 103 | 01000011 | C | C | |
| 68 | 0x44 | 104 | 01000100 | D | D | |
| 69 | 0x45 | 105 | 01000101 | E | E | |
| 70 | 0x46 | 106 | 01000110 | F | F | |
| 71 | 0x47 | 107 | 01000111 | G | G | |
| 72 | 0x48 | 110 | 01001000 | H | H | |
| 73 | 0x49 | 111 | 01001001 | I | I | |
| 74 | 0x4A | 112 | 01001010 | J | J | |
| 75 | 0x4B | 113 | 01001011 | K | K | |
| 76 | 0x4C | 114 | 01001100 | L | L | |
| 77 | 0x4D | 115 | 01001101 | M | M | |
| 78 | 0x4E | 116 | 01001110 | N | N | |
| 79 | 0x4F | 117 | 01001111 | O | O | |
| 80 | 0x50 | 120 | 01010000 | P | P | |
| 81 | 0x51 | 121 | 01010001 | Q | Q | |
| 82 | 0x52 | 122 | 01010010 | R | R | |
| 83 | 0x53 | 123 | 01010011 | S | S | |
| 84 | 0x54 | 124 | 01010100 | T | T | |
| 85 | 0x55 | 125 | 01010101 | U | U | |
| 86 | 0x56 | 126 | 01010110 | V | V | |
| 87 | 0x57 | 127 | 01010111 | W | W | |
| 88 | 0x58 | 130 | 01011000 | X | X | |
| 89 | 0x59 | 131 | 01011001 | Y | Y | |
| 90 | 0x5A | 132 | 01011010 | Z | Z | |
| 91 | 0x5B | 133 | 01011011 | [ | [ | |
| 92 | 0x5C | 134 | 01011100 | \ | \ | |
| 93 | 0x5D | 135 | 01011101 | ] | ] | |
| 94 | 0x5E | 136 | 01011110 | ^ | ^ | |
| 95 | 0x5F | 137 | 01011111 | _ | _ | |
| 96 | 0x60 | 140 | 01100000 | ` | ` | |
| 97 | 0x61 | 141 | 01100001 | a | a | |
| 98 | 0x62 | 142 | 01100010 | b | b | |
| 99 | 0x63 | 143 | 01100011 | c | c | |
| 100 | 0x64 | 144 | 01100100 | d | d | |
| 101 | 0x65 | 145 | 01100101 | e | e | |
| 102 | 0x66 | 146 | 01100110 | f | f | |
| 103 | 0x67 | 147 | 01100111 | g | g | |
| 104 | 0x68 | 150 | 01101000 | h | h | |
| 105 | 0x69 | 151 | 01101001 | i | i | |
| 106 | 0x6A | 152 | 01101010 | j | j | |
| 107 | 0x6B | 153 | 01101011 | k | k | |
| 108 | 0x6C | 154 | 01101100 | l | l | |
| 109 | 0x6D | 155 | 01101101 | m | m | |
| 110 | 0x6E | 156 | 01101110 | n | n | |
| 111 | 0x6F | 157 | 01101111 | o | o | |
| 112 | 0x70 | 160 | 01110000 | p | p | |
| 113 | 0x71 | 161 | 01110001 | q | q | |
| 114 | 0x72 | 162 | 01110010 | r | r | |
| 115 | 0x73 | 163 | 01110011 | s | s | |
| 116 | 0x74 | 164 | 01110100 | t | t | |
| 117 | 0x75 | 165 | 01110101 | u | u | |
| 118 | 0x76 | 166 | 01110110 | v | v | |
| 119 | 0x77 | 167 | 01110111 | w | w | |
| 120 | 0x78 | 170 | 01111000 | x | x | |
| 121 | 0x79 | 171 | 01111001 | y | y | |
| 122 | 0x7A | 172 | 01111010 | z | z | |
| 123 | 0x7B | 173 | 01111011 | { | { | |
| 124 | 0x7C | 174 | 01111100 | | | | | |
| 125 | 0x7D | 175 | 01111101 | } | } | |
| 126 | 0x7E | 176 | 01111110 | ~ | ~ | |
| 127 | 0x7F | 177 | 01111111 | DEL | DEL | Delete |
Useful arithmetic
- 'A' = 65, 'a' = 97
- The difference is 32 — a single bit.
c ^ 32flips the case of any ASCII letter. - '0' = 48
c − 48converts a digit character to its value, which isc − '0'in C.- Digits are 0x30–0x39
- The low nibble is the digit: 0x37 is '7'. This is why hex dumps of numeric text are readable at a glance.
- Uppercase is 0x41–0x5A
- Lowercase is 0x61–0x7A. Bit 5 is the case bit.
- Space = 32, DEL = 127
- Everything printable sits between them.
How it works
ASCII — the American Standard Code for Information Interchange — was standardised in 1963 and assigns a number from 0 to 127 to each character. Seven bits, which is why the eighth bit was free for parity on the teletypes it was designed for.
The layout is deliberate
Nothing about the ordering is accidental. Digits are consecutive so arithmetic works. Uppercase and lowercase are separated by exactly 32 so case conversion is one bit flip. Control characters come first so they sort before printable text. These decisions still shape how string code is written sixty years later.
The control characters that survived
Most of the first 32 codes were for controlling physical teletypes and are now historical. A few remain essential: LF (10) and CR (13) for line endings, HT (9) for tab, ESC (27) which begins every terminal escape sequence, and BEL (7) which still makes many terminals beep. DC1 and DC3 are XON and XOFF — the reason Ctrl-S freezes some terminals.
Why line endings differ
A teletype needed two operations to start a new line: carriage return to move the head back, line feed to advance the paper. Unix chose LF alone, classic Mac OS chose CR alone, and DOS kept both as CRLF. Windows inherited CRLF, which is why files still move between systems with mismatched line endings.
ASCII is a subset of UTF-8
UTF-8 was designed so that every ASCII byte means exactly the same thing in UTF-8. Any ASCII-only file is already valid UTF-8 — a compatibility decision that is a large part of why UTF-8 won over the alternatives.