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.

ASCII Codes
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.



ASCII 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