ASCII
The American Standard Code for Information Interchange (ASCII) is a character encoding scheme, first published as a standard in 1967 by the American Standards Association (ASA), that is used to encode alpha-numeric, puctuation and non-printing control characters using an eight-bit byte to represent each character. Seven of the bits are used to represent the character itself, giving a range of 128 characters. The additional bit is a parity bit that provides a simple error detection mechanism.
Different standards bodies and corporations have developed variations of ASCII to accommodate languages other than English that use the Latin alphabet. Unicode, a modern character encoding scheme that provides a unique number for any character regardless of the computing platform or language used, assigns the same encoding as ASCII to the characters represented in the ASCII character set to ensure backward compatibility.
There are 33 non-printing characters (0-31, and 127) and 95 printable ASCII characters (32-126). The digits 0-9 are represented using their 4-bit binary value, prefixed with 0011. Lower and upper case letters differ only by a single bit, which simplifies conversion from upper to lower case and vice versa. The standard ASCII character set is shown below.
Decimal | Hex | Char | Decimal | Hex | Char | Decimal | Hex | Char | Decimal | Hex | Char | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | NUL | 32 | 20 | SP | 64 | 40 | @ | 96 | 60 | ` | |||
1 | 1 | SOH | 33 | 21 | ! | 65 | 41 | A | 97 | 61 | a | |||
2 | 2 | STX | 34 | 22 | " | 66 | 42 | B | 98 | 62 | b | |||
3 | 3 | ETX | 35 | 23 | # | 67 | 43 | C | 99 | 63 | c | |||
4 | 4 | EOT | 36 | 24 | $ | 68 | 44 | D | 100 | 64 | d | |||
5 | 5 | ENQ | 37 | 25 | % | 69 | 45 | E | 101 | 65 | e | |||
6 | 6 | ACK | 38 | 26 | & | 70 | 46 | F | 102 | 66 | f | |||
7 | 7 | BEL | 39 | 27 | ' | 71 | 47 | G | 103 | 67 | g | |||
8 | 8 | BS | 40 | 28 | ( | 72 | 48 | H | 104 | 68 | h | |||
9 | 9 | HT | 41 | 29 | ) | 73 | 49 | I | 105 | 69 | i | |||
10 | A | LF | 42 | 2A | * | 74 | 4A | J | 106 | 6A | j | |||
11 | B | VT | 43 | 2B | + | 75 | 4B | K | 107 | 6B | k | |||
12 | C | FF | 44 | 2C | , | 76 | 4C | L | 108 | 6C | l | |||
13 | D | CR | 45 | 2D | - | 77 | 4D | M | 109 | 6D | m | |||
14 | E | SO | 46 | 2E | . | 78 | 4E | N | 110 | 6E | n | |||
15 | F | SI | 47 | 2F | / | 79 | 4F | O | 111 | 6F | o | |||
16 | 10 | DLE | 48 | 30 | 0 | 80 | 50 | P | 112 | 70 | p | |||
17 | 11 | DC1 | 49 | 31 | 1 | 81 | 51 | Q | 113 | 71 | q | |||
18 | 12 | DC2 | 50 | 32 | 2 | 82 | 52 | R | 114 | 72 | r | |||
19 | 13 | DC3 | 51 | 33 | 3 | 83 | 53 | S | 115 | 73 | s | |||
20 | 14 | DC4 | 52 | 34 | 4 | 84 | 54 | T | 116 | 74 | t | |||
21 | 15 | NAK | 53 | 35 | 5 | 85 | 55 | U | 117 | 75 | u | |||
22 | 16 | SYN | 54 | 36 | 6 | 86 | 56 | V | 118 | 76 | v | |||
23 | 17 | ETB | 55 | 37 | 7 | 87 | 57 | W | 119 | 77 | w | |||
24 | 18 | CAN | 56 | 38 | 8 | 88 | 58 | X | 120 | 78 | x | |||
25 | 19 | EM | 57 | 39 | 9 | 89 | 59 | Y | 121 | 79 | y | |||
26 | 1A | SUB | 58 | 3A | : | 90 | 58 | Z | 122 | 7A | z | |||
27 | 1B | ESC | 59 | 3B | ; | 91 | 5B | [ | 123 | 7B | { | |||
28 | 1C | FS | 60 | 3C | < | 92 | 5C | \ | 124 | 7C | | | |||
29 | 1D | GS | 61 | 3D | = | 93 | 5D | ] | 125 | 7D | } | |||
30 | 1E | RS | 62 | 3E | > | 94 | 5E | ^ | 126 | 7E | ~ | |||
31 | 1E | RS | 63 | 3F | ? | 94 | 5F | _ | 127 | 7F | DEL |
The first 32 ASCII characters are non-printing control characters, the original purpose of which was to control devices such as printers. The following table provides a brief description for each of these control codes.
Decimal | Hex | Char | Description |
---|---|---|---|
0 | 0 | NUL | Null Character |
1 | 1 | SOH | Start of Header |
2 | 2 | STX | Start of Text |
3 | 3 | ETX | End of Text |
4 | 4 | EOT | End of Transmission |
5 | 5 | ENQ | Enquiry |
6 | 6 | ACK | Acknowledgement |
7 | 7 | BEL | Bell - causes a beep in most computer terminals |
8 | 8 | BS | Backspace - causes the cursor to move back one space |
9 | 9 | HT | Horizontal Tab - moves the cursor right to the next tab stop |
10 | A | LF | Line Feed - moves the cursor to a new line |
11 | B | VT | Vertical Tab |
12 | C | FF | Form Feed - advances paper to the top of the next page (if output device is a printer) |
13 | D | CR | Carriage Return - moves the cursor to the left but does not advance to the next line |
14 | E | SO | Shift Out - switches output device to alternate character set |
15 | F | SI | Shift In - switches output device back to default character set |
16 | 10 | DLE | Data Link Escape |
17 | 11 | DC1 | Device Control 1 (XON) |
18 | 12 | DC2 | Device Control 2 |
19 | 13 | DC3 | Device Control 3 (XOFF) |
20 | 14 | DC4 | Device Control 4 |
21 | 15 | NAK | Negative Acknowledgement |
22 | 16 | SYN | Synchronous Idle |
23 | 17 | ETB | End of Transmission Block |
24 | 18 | CAN | Cancel |
25 | 19 | EM | End of Medium |
26 | 1A | SUB | Substitute |
27 | 1B | ESC | Escape |
28 | 1C | FS | File Separator |
29 | 1D | GS | Group Separator |
30 | 1E | RS | Record Separator |
31 | 1F | US | Unit Separator |