ASCII
What Is ASCII?
ASCII, the American Standard Code for Information Interchange, is a seven-bit character encoding that assigns numeric codes to 128 positions covering the uppercase and lowercase Latin alphabet, the decimal digits, punctuation, the space, and a set of control functions used to operate printers, terminals, and communication links. It was developed to replace the incompatible codes that individual manufacturers had adopted, and it became the common denominator for text interchange between computers, teleprinters, and the networks that connected them. As a character encoding it belongs to the broader subject of information coding, where the concern is the mapping between symbols and bit patterns rather than the compression or error protection applied afterward.
Work began in 1961 under committee X3.2.4, chartered by the American Standards Association and later renamed as the organization became the American National Standards Institute. The NIST account of the code's development records that consensus was difficult to reach because vendors had already committed to competing schemes, including the six-bit FIELDATA code and IBM's eight-bit EBCDIC, and that by 1967 the seven-bit set had settled into its familiar form.
Structure of the Code Set
The 128 code positions divide into 33 control characters and 95 graphic characters. Positions 0 through 31 and position 127 hold the control functions: transmission controls such as start of heading and end of transmission, format effectors such as carriage return, line feed, and horizontal tab, and device controls originally used to start and stop paper tape readers. The remaining positions hold the space and the printable characters, arranged so that the digits and letters fall in ascending contiguous runs, which makes ordinary numeric comparison of code values produce correct alphabetic sorting within a single case. The design is regular in a way that simplified early hardware: the uppercase and lowercase forms of a letter differ by a single bit, bit six, so case conversion reduces to setting or clearing one bit, and the numeric value of a digit occupies the low four bits of its code.
Standardization and Adoption
The code was published as ANSI X3.4 and adopted by the U.S. federal government as a Federal Information Processing Standard, issued as FIPS PUB 1, the Code for Information Interchange, which fixed the encoding for federal computing and communication equipment and gave it purchasing weight across the industry. A parallel international version was standardized as ISO 646, which reserved certain positions for national variants so that other languages could substitute accented letters and currency symbols. Because most systems handled bytes rather than seven-bit units, the eighth bit was commonly used for parity in serial transmission or left clear.
Extensions and Successors
Seven bits could not cover languages beyond English, so the spare eighth bit was pressed into service by the ISO 8859 family and by numerous vendor code pages, each defining a different upper half and none interoperating with the others. Unicode resolved the fragmentation by assigning a single code point to every character, and UTF-8, specified in RFC 3629, encodes the first 128 Unicode code points as single bytes identical to their ASCII values, which allowed existing text and protocol parsers to continue working unchanged. That compatibility is why ASCII remains embedded in the syntax of internet protocols, and RFC 5198 describes how the older code relates to Unicode text on the network today.
Applications
ASCII underlies practical work in a range of areas, including:
- Text file formats, source code, and configuration data
- Internet protocol syntax for mail, web, and file transfer
- Serial communication with terminals, instruments, and embedded devices
- Sorting, searching, and lexical analysis in software
- Legacy system interoperability and data migration