ASCII (American Standard Code for Information Interchange) is a 7-bit character encoding that maps the numbers 0–127 to characters. Established in 1963, it covers the digits, the uppercase and lowercase Latin letters, common punctuation, and 33 non-printing control codes — and it remains the foundation of modern text, because UTF-8 reuses these same 128 code points unchanged. The table below lists every code in decimal, hexadecimal, octal, and binary alongside its character. Codes 0–31 and 127 are control characters (such as TAB, line feed, and carriage return); 32–126 are the printable characters you can type and see.
Full table
| Dec | Hex | Oct | Bin | Char |
|---|---|---|---|---|
| 0 | 0x0 | 000 | 0000000 | NUL |
| 1 | 0x1 | 001 | 0000001 | SOH |
| 2 | 0x2 | 002 | 0000010 | STX |
| 3 | 0x3 | 003 | 0000011 | ETX |
| 4 | 0x4 | 004 | 0000100 | EOT |
| 5 | 0x5 | 005 | 0000101 | ENQ |
| 6 | 0x6 | 006 | 0000110 | ACK |
| 7 | 0x7 | 007 | 0000111 | BEL |
| 8 | 0x8 | 010 | 0001000 | BS |
| 9 | 0x9 | 011 | 0001001 | HT |
| 10 | 0xA | 012 | 0001010 | LF |
| 11 | 0xB | 013 | 0001011 | VT |
| 12 | 0xC | 014 | 0001100 | FF |
| 13 | 0xD | 015 | 0001101 | CR |
| 14 | 0xE | 016 | 0001110 | SO |
| 15 | 0xF | 017 | 0001111 | SI |
| 16 | 0x10 | 020 | 0010000 | DLE |
| 17 | 0x11 | 021 | 0010001 | DC1 |
| 18 | 0x12 | 022 | 0010010 | DC2 |
| 19 | 0x13 | 023 | 0010011 | DC3 |
| 20 | 0x14 | 024 | 0010100 | DC4 |
| 21 | 0x15 | 025 | 0010101 | NAK |
| 22 | 0x16 | 026 | 0010110 | SYN |
| 23 | 0x17 | 027 | 0010111 | ETB |
| 24 | 0x18 | 030 | 0011000 | CAN |
| 25 | 0x19 | 031 | 0011001 | EM |
| 26 | 0x1A | 032 | 0011010 | SUB |
| 27 | 0x1B | 033 | 0011011 | ESC |
| 28 | 0x1C | 034 | 0011100 | FS |
| 29 | 0x1D | 035 | 0011101 | GS |
| 30 | 0x1E | 036 | 0011110 | RS |
| 31 | 0x1F | 037 | 0011111 | US |
| 32 | 0x20 | 040 | 0100000 | SP (space) |
| 33 | 0x21 | 041 | 0100001 | ! |
| 34 | 0x22 | 042 | 0100010 | " |
| 35 | 0x23 | 043 | 0100011 | # |
| 36 | 0x24 | 044 | 0100100 | $ |
| 37 | 0x25 | 045 | 0100101 | % |
| 38 | 0x26 | 046 | 0100110 | & |
| 39 | 0x27 | 047 | 0100111 | ' |
| 40 | 0x28 | 050 | 0101000 | ( |
| 41 | 0x29 | 051 | 0101001 | ) |
| 42 | 0x2A | 052 | 0101010 | * |
| 43 | 0x2B | 053 | 0101011 | + |
| 44 | 0x2C | 054 | 0101100 | , |
| 45 | 0x2D | 055 | 0101101 | - |
| 46 | 0x2E | 056 | 0101110 | . |
| 47 | 0x2F | 057 | 0101111 | / |
| 48 | 0x30 | 060 | 0110000 | 0 |
| 49 | 0x31 | 061 | 0110001 | 1 |
| 50 | 0x32 | 062 | 0110010 | 2 |
| 51 | 0x33 | 063 | 0110011 | 3 |
| 52 | 0x34 | 064 | 0110100 | 4 |
| 53 | 0x35 | 065 | 0110101 | 5 |
| 54 | 0x36 | 066 | 0110110 | 6 |
| 55 | 0x37 | 067 | 0110111 | 7 |
| 56 | 0x38 | 070 | 0111000 | 8 |
| 57 | 0x39 | 071 | 0111001 | 9 |
| 58 | 0x3A | 072 | 0111010 | : |
| 59 | 0x3B | 073 | 0111011 | ; |
| 60 | 0x3C | 074 | 0111100 | < |
| 61 | 0x3D | 075 | 0111101 | = |
| 62 | 0x3E | 076 | 0111110 | > |
| 63 | 0x3F | 077 | 0111111 | ? |
| 64 | 0x40 | 100 | 1000000 | @ |
| 65 | 0x41 | 101 | 1000001 | A |
| 66 | 0x42 | 102 | 1000010 | B |
| 67 | 0x43 | 103 | 1000011 | C |
| 68 | 0x44 | 104 | 1000100 | D |
| 69 | 0x45 | 105 | 1000101 | E |
| 70 | 0x46 | 106 | 1000110 | F |
| 71 | 0x47 | 107 | 1000111 | G |
| 72 | 0x48 | 110 | 1001000 | H |
| 73 | 0x49 | 111 | 1001001 | I |
| 74 | 0x4A | 112 | 1001010 | J |
| 75 | 0x4B | 113 | 1001011 | K |
| 76 | 0x4C | 114 | 1001100 | L |
| 77 | 0x4D | 115 | 1001101 | M |
| 78 | 0x4E | 116 | 1001110 | N |
| 79 | 0x4F | 117 | 1001111 | O |
| 80 | 0x50 | 120 | 1010000 | P |
| 81 | 0x51 | 121 | 1010001 | Q |
| 82 | 0x52 | 122 | 1010010 | R |
| 83 | 0x53 | 123 | 1010011 | S |
| 84 | 0x54 | 124 | 1010100 | T |
| 85 | 0x55 | 125 | 1010101 | U |
| 86 | 0x56 | 126 | 1010110 | V |
| 87 | 0x57 | 127 | 1010111 | W |
| 88 | 0x58 | 130 | 1011000 | X |
| 89 | 0x59 | 131 | 1011001 | Y |
| 90 | 0x5A | 132 | 1011010 | Z |
| 91 | 0x5B | 133 | 1011011 | [ |
| 92 | 0x5C | 134 | 1011100 | \ |
| 93 | 0x5D | 135 | 1011101 | ] |
| 94 | 0x5E | 136 | 1011110 | ^ |
| 95 | 0x5F | 137 | 1011111 | _ |
| 96 | 0x60 | 140 | 1100000 | ` |
| 97 | 0x61 | 141 | 1100001 | a |
| 98 | 0x62 | 142 | 1100010 | b |
| 99 | 0x63 | 143 | 1100011 | c |
| 100 | 0x64 | 144 | 1100100 | d |
| 101 | 0x65 | 145 | 1100101 | e |
| 102 | 0x66 | 146 | 1100110 | f |
| 103 | 0x67 | 147 | 1100111 | g |
| 104 | 0x68 | 150 | 1101000 | h |
| 105 | 0x69 | 151 | 1101001 | i |
| 106 | 0x6A | 152 | 1101010 | j |
| 107 | 0x6B | 153 | 1101011 | k |
| 108 | 0x6C | 154 | 1101100 | l |
| 109 | 0x6D | 155 | 1101101 | m |
| 110 | 0x6E | 156 | 1101110 | n |
| 111 | 0x6F | 157 | 1101111 | o |
| 112 | 0x70 | 160 | 1110000 | p |
| 113 | 0x71 | 161 | 1110001 | q |
| 114 | 0x72 | 162 | 1110010 | r |
| 115 | 0x73 | 163 | 1110011 | s |
| 116 | 0x74 | 164 | 1110100 | t |
| 117 | 0x75 | 165 | 1110101 | u |
| 118 | 0x76 | 166 | 1110110 | v |
| 119 | 0x77 | 167 | 1110111 | w |
| 120 | 0x78 | 170 | 1111000 | x |
| 121 | 0x79 | 171 | 1111001 | y |
| 122 | 0x7A | 172 | 1111010 | z |
| 123 | 0x7B | 173 | 1111011 | { |
| 124 | 0x7C | 174 | 1111100 | | |
| 125 | 0x7D | 175 | 1111101 | } |
| 126 | 0x7E | 176 | 1111110 | ~ |
| 127 | 0x7F | 177 | 1111111 | DEL |
Notes
- Control codes 0–31 originally controlled teletypes; many are still used (CR=13, LF=10, TAB=9, NUL=0).
- Codes 128–255 depend on codepage — use UTF-8 for anything beyond ASCII.
Frequently asked questions
What is ASCII?
American Standard Code for Information Interchange — a 7-bit character encoding established in 1963 that maps numbers 0–127 to characters: digits, uppercase and lowercase Latin letters, common punctuation, and 33 control codes. It's the foundation of nearly every modern text encoding (UTF-8 includes ASCII as its first 128 code points unchanged), and underlies virtually every text protocol on the internet.
What are control codes?
Codes 0–31 and 127 are non-printing characters originally designed to control teletype machines and terminals. The most commonly seen today: <strong>NUL (0)</strong> string terminator in C; <strong>BEL (7)</strong> the terminal beep; <strong>BS (8)</strong> backspace; <strong>HT (9)</strong> tab; <strong>LF (10)</strong> line feed (Unix newline); <strong>CR (13)</strong> carriage return (paired with LF for Windows newlines); <strong>ESC (27)</strong> escape, the start of ANSI terminal codes; <strong>DEL (127)</strong> delete.
What's the difference between ASCII and Unicode?
ASCII is 128 characters in 7 bits. Unicode is over 149,000 characters across nearly 1.2 million possible code points. UTF-8 is the dominant encoding of Unicode and is backward-compatible with ASCII — the first 128 code points of UTF-8 are byte-for-byte identical to ASCII. So all ASCII text is valid UTF-8; the reverse isn't necessarily true.
Why do some characters take more bytes in UTF-8?
ASCII characters take 1 byte each. Most Latin-extended characters (é, ñ, ö) take 2. CJK characters (中, あ, 한) take 3. Emoji and rare symbols take 4. UTF-8 is a variable-length encoding — the first byte tells you how long the character is. This is why a string of 100 emoji takes 400 bytes.
What about codes 128–255?
Not part of ASCII proper. Various 8-bit extensions assign meaning differently: ISO-8859-1 (Latin-1) covers Western European characters; Windows-1252 is similar but adds smart quotes and em-dashes; KOI8-R covers Cyrillic. These 'extended ASCII' codepages are mostly obsolete — modern systems use Unicode and UTF-8 for everything beyond ASCII.
Why does Windows use CR+LF and Unix use LF?
Historical accident. Teletypes physically required two operations to start a new line: carriage return (move print head to left) and line feed (advance paper). Mac OS classic used CR alone; DEC and Unix used LF alone; Windows kept the original CR+LF. Modern git, editors, and terminals usually handle this transparently, but the difference still causes occasional cross-platform headaches.