# ASCII Table — Complete Character Code Reference

> Full ASCII table with all 128 characters showing decimal, hexadecimal, octal, binary values and descriptions for control characters and printable characters.

- URL: https://www.browserutils.dev/cheatsheets/ascii-table
- Published: 2026-03-21
- Updated: 2026-03-16

---

ASCII (American Standard Code for Information Interchange) assigns numeric values to 128 characters. These include control characters (0-31, 127), printable characters (32-126), and the standard Latin alphabet. ASCII is the foundation of virtually all modern character encoding systems including UTF-8.

## Control Characters (0-31, 127)

These non-printable characters were originally designed to control hardware devices like printers and telephones. Many still serve purposes in modern computing.

| Dec | Hex | Oct | Char | Name | Description |
|-----|-----|-----|------|------|-------------|
| 0 | 00 | 000 | NUL | Null | String terminator in C |
| 1 | 01 | 001 | SOH | Start of Heading | Start of header |
| 2 | 02 | 002 | STX | Start of Text | Start of text body |
| 3 | 03 | 003 | ETX | End of Text | Often used as Ctrl+C (interrupt) |
| 4 | 04 | 004 | EOT | End of Transmission | Ctrl+D (end of input) |
| 5 | 05 | 005 | ENQ | Enquiry | Request for response |
| 6 | 06 | 006 | ACK | Acknowledge | Positive acknowledgement |
| 7 | 07 | 007 | BEL | Bell | Terminal bell/beep (`\a`) |
| 8 | 08 | 010 | BS | Backspace | Move cursor back (`\b`) |
| 9 | 09 | 011 | HT | Horizontal Tab | Tab character (`\t`) |
| 10 | 0A | 012 | LF | Line Feed | Newline on Unix/macOS (`\n`) |
| 11 | 0B | 013 | VT | Vertical Tab | Vertical tab (`\v`) |
| 12 | 0C | 014 | FF | Form Feed | Page break (`\f`) |
| 13 | 0D | 015 | CR | Carriage Return | Newline on old Mac; `\r\n` on Windows (`\r`) |
| 14 | 0E | 016 | SO | Shift Out | Switch to alternate character set |
| 15 | 0F | 017 | SI | Shift In | Return to default character set |
| 16 | 10 | 020 | DLE | Data Link Escape | Control character for data links |
| 17 | 11 | 021 | DC1 | Device Control 1 | XON — resume transmission |
| 18 | 12 | 022 | DC2 | Device Control 2 | |
| 19 | 13 | 023 | DC3 | Device Control 3 | XOFF — pause transmission |
| 20 | 14 | 024 | DC4 | Device Control 4 | |
| 21 | 15 | 025 | NAK | Negative Acknowledge | Negative acknowledgement |
| 22 | 16 | 026 | SYN | Synchronous Idle | Synchronization |
| 23 | 17 | 027 | ETB | End of Transmission Block | End of data block |
| 24 | 18 | 030 | CAN | Cancel | Cancel previous data |
| 25 | 19 | 031 | EM | End of Medium | End of storage medium |
| 26 | 1A | 032 | SUB | Substitute | Ctrl+Z (EOF on Windows) |
| 27 | 1B | 033 | ESC | Escape | Start of escape sequences |
| 28 | 1C | 034 | FS | File Separator | Delimiter |
| 29 | 1D | 035 | GS | Group Separator | Delimiter |
| 30 | 1E | 036 | RS | Record Separator | Delimiter |
| 31 | 1F | 037 | US | Unit Separator | Delimiter |
| 127 | 7F | 177 | DEL | Delete | Delete character |

## Printable Characters (32-126)

| Dec | Hex | Oct | Char | Dec | Hex | Oct | Char | Dec | Hex | Oct | Char |
|-----|-----|-----|------|-----|-----|-----|------|-----|-----|-----|------|
| 32 | 20 | 040 | (space) | 64 | 40 | 100 | `@` | 96 | 60 | 140 | `` ` `` |
| 33 | 21 | 041 | `!` | 65 | 41 | 101 | `A` | 97 | 61 | 141 | `a` |
| 34 | 22 | 042 | `"` | 66 | 42 | 102 | `B` | 98 | 62 | 142 | `b` |
| 35 | 23 | 043 | `#` | 67 | 43 | 103 | `C` | 99 | 63 | 143 | `c` |
| 36 | 24 | 044 | `$` | 68 | 44 | 104 | `D` | 100 | 64 | 144 | `d` |
| 37 | 25 | 045 | `%` | 69 | 45 | 105 | `E` | 101 | 65 | 145 | `e` |
| 38 | 26 | 046 | `&` | 70 | 46 | 106 | `F` | 102 | 66 | 146 | `f` |
| 39 | 27 | 047 | `'` | 71 | 47 | 107 | `G` | 103 | 67 | 147 | `g` |
| 40 | 28 | 050 | `(` | 72 | 48 | 110 | `H` | 104 | 68 | 150 | `h` |
| 41 | 29 | 051 | `)` | 73 | 49 | 111 | `I` | 105 | 69 | 151 | `i` |
| 42 | 2A | 052 | `*` | 74 | 4A | 112 | `J` | 106 | 6A | 152 | `j` |
| 43 | 2B | 053 | `+` | 75 | 4B | 113 | `K` | 107 | 6B | 153 | `k` |
| 44 | 2C | 054 | `,` | 76 | 4C | 114 | `L` | 108 | 6C | 154 | `l` |
| 45 | 2D | 055 | `-` | 77 | 4D | 115 | `M` | 109 | 6D | 155 | `m` |
| 46 | 2E | 056 | `.` | 78 | 4E | 116 | `N` | 110 | 6E | 156 | `n` |
| 47 | 2F | 057 | `/` | 79 | 4F | 117 | `O` | 111 | 6F | 157 | `o` |
| 48 | 30 | 060 | `0` | 80 | 50 | 120 | `P` | 112 | 70 | 160 | `p` |
| 49 | 31 | 061 | `1` | 81 | 51 | 121 | `Q` | 113 | 71 | 161 | `q` |
| 50 | 32 | 062 | `2` | 82 | 52 | 122 | `R` | 114 | 72 | 162 | `r` |
| 51 | 33 | 063 | `3` | 83 | 53 | 123 | `S` | 115 | 73 | 163 | `s` |
| 52 | 34 | 064 | `4` | 84 | 54 | 124 | `T` | 116 | 74 | 164 | `t` |
| 53 | 35 | 065 | `5` | 85 | 55 | 125 | `U` | 117 | 75 | 165 | `u` |
| 54 | 36 | 066 | `6` | 86 | 56 | 126 | `V` | 118 | 76 | 166 | `v` |
| 55 | 37 | 067 | `7` | 87 | 57 | 127 | `W` | 119 | 77 | 167 | `w` |
| 56 | 38 | 070 | `8` | 88 | 58 | 130 | `X` | 120 | 78 | 170 | `x` |
| 57 | 39 | 071 | `9` | 89 | 59 | 131 | `Y` | 121 | 79 | 171 | `y` |
| 58 | 3A | 072 | `:` | 90 | 5A | 132 | `Z` | 122 | 7A | 172 | `z` |
| 59 | 3B | 073 | `;` | 91 | 5B | 133 | `[` | 123 | 7B | 173 | `{` |
| 60 | 3C | 074 | `<` | 92 | 5C | 134 | `\` | 124 | 7C | 174 | `\|` |
| 61 | 3D | 075 | `=` | 93 | 5D | 135 | `]` | 125 | 7D | 175 | `}` |
| 62 | 3E | 076 | `>` | 94 | 5E | 136 | `^` | 126 | 7E | 176 | `~` |
| 63 | 3F | 077 | `?` | 95 | 5F | 137 | `_` | | | | |

## Key Ranges

| Range | Dec | Hex | Contents |
|-------|-----|-----|----------|
| Control chars | 0-31 | 00-1F | Non-printable control codes |
| Space | 32 | 20 | The space character |
| Digits 0-9 | 48-57 | 30-39 | Numeric characters |
| Uppercase A-Z | 65-90 | 41-5A | Capital letters |
| Lowercase a-z | 97-122 | 61-7A | Lowercase letters |
| DEL | 127 | 7F | Delete control character |

## Useful Conversions

```
# Uppercase to lowercase: add 32
'A' (65) + 32 = 'a' (97)

# Lowercase to uppercase: subtract 32
'a' (97) - 32 = 'A' (65)

# Digit char to number: subtract 48
'7' (55) - 48 = 7

# Number to digit char: add 48
7 + 48 = '7' (55)

# Check if printable: 32 <= code <= 126
```

## ASCII vs Unicode

ASCII covers only 128 characters (7 bits). Unicode extends this to over 149,000 characters across all writing systems. UTF-8, the dominant encoding on the web, is backward-compatible with ASCII: the first 128 UTF-8 code points are identical to ASCII.

Explore the full table interactively with the [ASCII Table](/tools/ascii-table) tool, or convert between formats with [ASCII to Hex](/tools/ascii-to-hex) and [Hex to Text](/tools/hex-to-text).