How Do You Read an ASCII Table? Character Codes, Controls and Unicode Limits

Read an ASCII table by finding a character and matching it to its decimal or hexadecimal number. Capital A is decimal 65, hexadecimal 41. Standard ASCII has 128 assignments, numbered 0 through 127. Some represent visible characters; others represent controls such as tab and line feed.

ASCII stands for American Standard Code for Information Interchange. It is a seven-bit character code, not a font or a list of everything your keyboard can type. Establishing that limit prevents the most common lookup mistake: treating a symbol from another encoding as standard ASCII.

Hands typing on a mechanical keyboard in warm window light

How do decimal and hexadecimal columns work?

Decimal uses digits 0–9. Hexadecimal uses 0–9 followed by A–F, with A representing ten and F representing fifteen. A label such as 0x41 means hexadecimal 41. In an ASCII lookup, decimal 65 and hex 41 identify the same assignment, not two different characters.

Watch the column heading. Decimal 41 identifies the right parenthesis, while hex 41 identifies capital A. Similarly, decimal 10 is line feed, but hex 10 is DLE, a different control. A number copied without its base can therefore point to the wrong entry.

For a grid whose headings split the two hex digits, combine the high-digit heading with the low-digit heading in that order. High digit 4 and low digit 1 give 41. Check whether the particular grid puts the high digit along the top or the side before following it.

The complete standard ASCII lookup

The four short tables below cover every assignment once. Dec means decimal. Hex values have two digits for consistent scanning. SP labels the space character; control abbreviations are names, not the literal letters stored in the text. The historical assignment reference is RFC 20’s ASCII table.

0–31: control characters

DecHexCharacterDecHexCharacter
000NUL1610DLE
101SOH1711DC1
202STX1812DC2
303ETX1913DC3
404EOT2014DC4
505ENQ2115NAK
606ACK2216SYN
707BEL2317ETB
808BS2418CAN
909HT2519EM
100ALF261ASUB
110BVT271BESC
120CFF281CFS
130DCR291DGS
140ESO301ERS
150FSI311FUS

32–63: space, punctuation and digits

DecHexCharacterDecHexCharacter
3220SP (space)48300
3321!49311
3422"50322
3523#51333
3624$52344
3725%53355
3826&54366
3927'55377
4028(56388
4129)57399
422A*583A:
432B+593B;
442C,603C<
452D–613D=
462E.623E>
472F/633F?

64–95: uppercase letters and punctuation

DecHexCharacterDecHexCharacter
6440@8050P
6541A8151Q
6642B8252R
6743C8353S
6844D8454T
6945E8555U
7046F8656V
7147G8757W
7248H8858X
7349I8959Y
744AJ905AZ
754BK915B[
764CL925C\
774DM935D]
784EN945E^
794FO955F_

96–127: lowercase letters, punctuation and DEL

DecHexCharacterDecHexCharacter
9660`11270p
9761a11371q
9862b11472r
9963c11573s
10064d11674t
10165e11775u
10266f11876v
10367g11977w
10468h12078x
10569i12179y
1066Aj1227Az
1076Bk1237B{
1086Cl1247C|
1096Dm1257D}
1106En1267E~
1116Fo1277FDEL

The printable range is decimal 32–126, including space: 95 assignments. The 94 visible graphic characters occupy 33–126. Digits run from 48–57, uppercase letters from 65–90, and lowercase letters from 97–122. There are punctuation gaps between those ranges, so a range covering all letters also includes some nonletters.

Hands turning a reference-book page beside a computer keyboard

Space, NUL and zero are different

Space is decimal 32, hex 20. It separates words without drawing an inked shape. NUL is decimal 0, hex 00, a control character. The visible digit 0 is decimal 48, hex 30. An empty field, a space, a NUL and the digit zero are four different things.

Some software uses NUL to mark the end of a string, but that is a convention of the software or format. A blank-looking display alone cannot tell you which character is present. Inspect its value rather than replacing every invisible character with a space.

What do tab, CR, LF and DEL mean?

HT, decimal 9 (09 hex), is horizontal tab. A tab is one control character, even when the editor displays it across several columns. Its displayed width depends on tab stops and the application, so it is not inherently four or eight space characters.

LF, decimal 10 (0A hex), means line feed. CR, decimal 13 (0D hex), means carriage return. Modern text formats may use LF alone or the two-character CRLF sequence for a line ending. The format determines which convention applies; the Enter key does not always produce one universal byte sequence.

DEL, decimal 127 (7F hex), is the delete assignment, not a printable symbol. Do not confuse it with BS, backspace, at decimal 8. Physical Backspace and Delete keys can trigger application actions or input sequences rather than simply inserting their similarly named ASCII controls.

Try three lookups

First, find the question mark. Its entry is decimal 63, hex 3F. Second, compare capital A with lowercase a: 65/41 and 97/61 respectively. Their values differ by 32 in decimal, but that relationship should not be applied indiscriminately to punctuation or to letters outside ASCII.

Third, read the hex byte sequence 48 69 21 as ASCII. The entries are H, i and !, giving Hi!. Writing the same assignments in decimal gives 72 105 33. These are three characters, not the six visible digits of a hex dump. For the separate arithmetic behind bits, see our guide to reading binary code.

Hands using a mouse and pointing to a computer reference window

Why curly quotes and accented letters are missing

Standard ASCII includes straight quotation marks and the straight apostrophe. It does not include curly quotation marks, the degree symbol °, or accented letters such as é. Their absence is a limit of the character set, not a damaged table. A font change cannot add assignments to ASCII.

“Extended ASCII” does not identify one universal table. Ask for the actual encoding name, such as Windows-1252 or IBM code page 437. Their additional assignments differ. A byte above 127 cannot be interpreted reliably from the label “ASCII” alone.

Unicode code points versus UTF-8 bytes

Unicode assigns code points, conventionally written with U+ and hexadecimal digits. UTF-8 specifies how those code points are encoded as bytes. The Unicode Consortium’s encoding FAQ explains the distinction. ASCII assignments retain their values in Unicode and use one byte each in UTF-8.

For example, A is U+0041 and its UTF-8 byte is 41. The degree symbol is U+00B0, but its UTF-8 bytes are C2 B0. The single code-point number and the two-byte sequence answer different questions. Before using any character table, establish whether you are looking up a character, a code point or encoded bytes.

For optional offline study, browse character-encoding programming books on Amazon. Choose a reference that names the encodings it covers and distinguishes byte values from character assignments.

Add comment

Leave a Reply