Fact-checked by Grok 2 weeks ago

Six-bit character code

A six-bit character code is a fixed-width binary encoding system that represents each character using exactly six bits, enabling up to distinct symbols, typically comprising uppercase letters, digits, punctuation marks, and control functions. These codes emerged in the mid-20th century as an advancement over earlier five-bit telegraph standards like the International Telegraph Alphabet No. 2 (ITA2), providing sufficient capacity for alphanumeric data in emerging digital systems while optimizing storage in hardware with limited memory, such as vacuum-tube registers. Prominent examples include IBM's Interchange Code (BCDIC), established in 1962 as an internal standard for six-bit representation in systems like the Hollerith code, supporting 64 characters including 26 alphabetic, 10 numeric, and various special symbols for in machines such as the and 7090. Another key standard was FIELDATA, a 7-bit code developed by the U.S. Army in the late 1950s under MIL-STD-188A (1958) for military communications and adopted in 1100-series computers, featuring a 64-character graphic subset (with nine control codes and 55 printable symbols) optimized for teletype and data transmission. Six-bit codes were also proposed in international efforts, such as the European Computer Manufacturers Association's ECMA-1 standard (1963) and early (ISO) drafts like ISO 1052 (1966), which aimed to standardize for and . These encodings facilitated efficient use of media like 80-column punched cards (storing up to 80 characters per card with an average of 2.2 holes per character) and seven-track magnetic tapes, but their limitations—such as the inability to natively support lowercase letters or extended international characters—led to their decline in the 1960s. By 1963, the American Standards Association's X3.4-1963 (ASCII) introduced a seven-bit alternative, expanding to 128 characters and incorporating six-bit subsets for compatibility, while IBM's System/360 architecture shifted toward eight-bit EBCDIC for broader numeric and graphic needs. Despite their obsolescence, six-bit codes influenced modern standards like ISO 646 and Unicode by establishing principles for character set design in data interchange.

Overview

Definition and Purpose

A six-bit character code is a binary encoding scheme that utilizes six bits to represent up to 64 unique characters, including uppercase letters, numerals, , and symbols. This approach was particularly well-suited for early computers featuring word lengths that were multiples of six bits, such as 36-bit words, which could accommodate exactly six characters per word for efficient packing. The primary purpose of six-bit character codes was to optimize storage and data transmission in resource-limited environments of early , where minimizing bit usage was critical to reduce overhead and maximize throughput compared to later seven- or eight-bit schemes. By encoding essential alphanumeric and control characters within a compact 64-symbol set, these codes supported core operations in punch card systems, teleprinters, and mainframes without requiring additional bits for less common glyphs. A key limitation of six-bit codes was their capacity constraint of symbols, which often necessitated the exclusion of lowercase letters, diacritical marks, or extended to prioritize uppercase alphabets and basic symbols for and scientific applications. This reflected the era's focus on simplicity over comprehensive multilingual support. These codes emerged in the and 1960s as a response to the demands of expanding needs, driven by advancements in punch card tabulation, communications, and mainframe architectures that sought to enhance data density in constrained hardware.

Historical Development

The development of six-bit character codes emerged in the early 1950s, driven by the architecture of mainframe computers that favored word lengths divisible by six, such as the 704's 36-bit words, which allowed efficient storage of six characters per word without padding. Similarly, systems like the 702 and utilized six-bit (BCD) encodings to handle alphanumeric data on punched cards and magnetic tapes, reflecting the era's emphasis on decimal compatibility for business applications. These codes provided 64 possible symbols, sufficient for uppercase letters, digits, punctuation, and basic controls, while aligning with the Hollerith punched-card standards prevalent in . This approach evolved from earlier five-bit codes like the Baudot code, which had been standard for telegraphy and teletype since the late 19th century but limited repertoires to about 32 symbols per shift set, necessitating mode switches that complicated mechanical transmission. By the 1950s, the need for expanded character sets in punch-card systems and early computers prompted the addition of a sixth bit, enabling unshifted encoding of up to 64 characters and reducing errors in automated data entry for teletype and tabulating equipment. Key milestones included the U.S. military's adoption of FIELDATA in 1958 as a six-bit code for integrated data processing in communications and computing, formalized under MIL-STD-188 to support 64 characters including military-specific symbols. In the 1960s, commercial adoption advanced with IBM's BCDIC variants, introduced around 1962 for systems like the IBM 1401, which extended BCD to include more graphics while maintaining compatibility with existing peripherals. Standardization efforts in the built on these foundations, with ECMA publishing its six-bit code as ECMA-1 in and revising related seven-bit standards like ECMA-6 through 1973, influencing early ISO drafts that explored six-bit options before prioritizing seven-bit compatibility. However, six-bit codes began declining after the 1963 introduction of seven-bit ASCII, which offered broader international support, and IBM's shift to eight-bit in 1964 for the System/360, standardizing on byte sizes that rendered six-bit packing obsolete for new designs. Despite this, six-bit encodings persisted in legacy and embedded systems into the and 1990s, particularly in Digital Equipment Corporation's PDP series minicomputers, where 12-bit or 18-bit words efficiently stored two or three six-bit characters, supporting ongoing use in scientific and applications.

Technical Foundations

Encoding Mechanics

In six-bit character codes, each is represented by a 6-bit value, corresponding to integers from 0 to 63, which enables encoding up to 64 distinct symbols such as uppercase letters, digits, , and characters. This structure was particularly suited to early computers with word sizes that were multiples of 6 bits, such as 36-bit or 48-bit architectures, allowing efficient without wasted bits. The bit allocation within each 6-bit field typically dedicates all six bits (often labeled as bits 0 through 5, with bit 0 as the least significant) to symbol selection, providing direct mapping to the code's character set without reserved fields for additional in basic implementations. Basic forms of these codes, such as early BCD variants, omitted a dedicated to maximize character density, though some systems extended the per-character storage to include one for error detection. For instance, the used an 8-bit storage unit per character, comprising 6 data bits plus a and a word mark bit, where the parity bit ensured an odd number of 1s across the 6 data bits plus parity for single-error detection. Packing techniques for multiple characters into larger words involved concatenating the 6-bit fields sequentially, often aligning them to fit system's word length precisely—for example, six characters occupy a full 36-bit word with no required. Common methods included left-justified packing, where the first 's bits occupy the most significant positions (bits 30-35 in a 36-bit word, assuming bit 0 is least significant), followed by subsequent characters shifted right by 6 bits each. Alternatively, right-justified packing placed the last at the least significant bits, with leading zeros for incomplete words. To extract the n-th from a right-justified packed word W (0-indexed from the right), the value is obtained via the formula: \text{char}_n = (W \gg (6n)) \mod 2^6 where \gg denotes right shift and \mod 2^6 masks the lowest 6 bits. For left-justified packing, the formula would be \text{char}_n = (W \gg (30 - 6n)) \mod 2^6 for n=0 as the first (leftmost) character. Bit-ordering conventions in packing varied by system, with both little-endian and big-endian approaches used in early systems. In the Norsk Data systems, for example, characters were packed right-aligned in big-endian 16-bit or 32-bit words, ensuring the least significant bit of the final character aligned with the word's end. Due to the absence of built-in redundancy in core 6-bit fields, these encodings were inherently vulnerable to transmission errors, as a single bit flip could alter a character undetectably without additional measures. Some variants mitigated this by incorporating per-character parity bits, as in the IBM 1401, which detected but did not correct odd-numbered bit errors. In data transmission contexts, simple checksums—such as summing character values modulo 64—were occasionally employed at the block level for basic integrity verification, though these were not standardized across all six-bit implementations.

Comparison to Other Character Encodings

Six-bit character codes, which support distinct characters through their 2^6 capacity, represent a significant advancement over five-bit encodings like the . The , standardized in 1931 for use, provides only 32 code points (2^5), necessitating shift mechanisms to access additional characters such as numerals and symbols, which doubles the effective set to around but introduces complexity and error susceptibility during transmission. In contrast, six-bit codes eliminate the need for such mode shifts, enabling direct encoding of a full uppercase , digits, and basic symbols in a single plane, thereby doubling the base capacity and improving processing efficiency for early computing applications. Compared to seven-bit ASCII, standardized in 1963 and refined by ANSI in 1967, six-bit codes offer space efficiency at the cost of reduced expressiveness. ASCII accommodates 128 characters (2^7), including lowercase letters, diacritics, and additional controls, fostering broad across systems. Six-bit encodings, however, typically cover only uppercase and symbols, lacking support for lowercase or extended graphics, which limits their utility in diverse text processing. Quantitatively, six-bit codes achieve approximately 85.7% storage and transmission efficiency relative to ASCII (calculated as 6/7 bits per character), yielding a 14.3% space savings for compatible character subsets, though this advantage diminishes in mixed-language environments requiring conversion. ASCII's dominance arose from its role as an industry standard for data interchange, rendering six-bit codes largely transitional. Eight-bit EBCDIC, introduced by IBM in 1964 for the System/360, shares commercial origins with six-bit variants but expands capacity to 256 characters (2^8) while incorporating a parity bit for error detection in some implementations. Six-bit codes, rooted in IBM's punched-card BCDIC (Binary-Coded Decimal Interchange Code), optimized for 80- or 96-column cards with 64 punch combinations per column, prioritized compactness for mechanical tabulation over EBCDIC's fuller byte utilization. EBCDIC evolved directly from these six-bit BCD codes by adding two high-order bits, maintaining compatibility for legacy peripherals but introducing non-contiguous ordering that complicates sorting. Unlike EBCDIC's emphasis on reliability through parity and extensive national variants, six-bit codes often forgo parity, trading robustness for minimal bit usage in resource-constrained hardware. Compatibility between six-bit codes and other encodings frequently involves subset mappings and conversion overhead. For instance, DEC's SIXBIT code maps directly to the ASCII printable subset (codes 32–95 ) by subtracting 32 from each ASCII value to get the SIXBIT code, allowing without loss for uppercase and symbols but requiring expansion for full ASCII compliance. Such relations facilitate partial in systems, like DEC minicomputers with ASCII networks, yet introduce delays and potential data loss for unsupported characters. In environments, six-bit BCDIC subsets embed within , but exceptions in graphic assignments demand custom translation tables, increasing system complexity in mixed deployments. Overall, these trade-offs highlight six-bit codes' niche role in pre-ASCII eras, supplanted by higher-bit standards for modern scalability.

Major Six-bit Encodings

BCD-Based Codes

BCD-based six-bit character codes represent an extension of the four-bit (BCD) encoding traditionally used for numeric digits 0-9, augmented by two additional zone bits to accommodate alphabetic characters and symbols. This adaptation allowed for efficient representation of alphanumeric data in early systems, where the four numeric bits (typically labeled 8-4-2-1) combined with two zone bits (often A and B) formed a six-bit code capable of 64 distinct combinations. In systems like the 7070 from the mid-1950s, this structure enabled the encoding of alphameric characters, with zone bits distinguishing numeric values (zone 00) from alphabetic ones (zones 11 or 12 for letters A-I and J-R, respectively). Key variants of these codes include the BCDIC (Binary Coded Decimal Interchange Code), a six-bit encoding adapted from formats for use in . BCDIC supported storage and transmission in early peripherals, such as the 80-column read by devices like the IBM 1402, where each column encoded a character via hole patterns corresponding to the six-bit BCD structure. Another variant emerged in implementations during the 1960s, particularly on systems like the , where six-bit BCD fields facilitated fixed-length records up to 999 characters and used zoned decimal format, storing one digit per six-bit character for numeric fields in database and accounting applications. The character set in these BCD-based codes typically comprised 48 alphanumeric characters (26 uppercase letters A-Z and 10 digits 0-9) plus 16 special symbols, such as +, -, *, /, &, $, and #, totaling up to 64 possible encodings though not all were utilized. Zone bits played a crucial role in differentiation: numeric characters lacked zone bits or used zone 00, while alphabetic and special characters employed zones like 11 (for A-I and S-Z) or 12 (for J-R) to shift the four-bit portion accordingly. This design ensured compatibility with decimal arithmetic while supporting text processing. These codes originated from influences in early accounting machines, tracing back to the introduced in and widely used through 1952, which employed BCD arithmetic for high-speed decimal operations and laid the groundwork for six-bit extensions in subsequent systems. In integration on platforms like the , numeric fields used zoned decimal storage, optimizing fixed-length record handling in business without requiring byte-aligned storage. This approach persisted into the for legacy database systems, emphasizing decimal precision over binary efficiency.

FIELDATA and Military Codes

FIELDATA, developed by the U.S. Army Signal Corps in the late 1950s, served as a foundational six-bit character encoding standard for military communications and data processing systems. Established under MIL-STD-188 in 1958, it provided 64 character positions to accommodate uppercase letters, digits, punctuation, and specialized symbols including mathematical notations essential for technical documentation. This design, led by Captain William F. Luebbert of the U.S. Army Signal Research and Development Laboratory, aimed to unify data transmission across military hardware, eliminating barriers between communication and computing by supporting a compact yet versatile set of glyphs. The encoding's structure allocated six bits per character, enabling efficient representation in systems with word lengths like 36 bits, such as those in 1100 series computers. It incorporated elements tailored to U.S. defense needs. FIELDATA was deployed in various U.S. military and communication systems throughout the for secure data exchange. Aspects aligned with early civilian standards, such as the ASA X3.4-1963 (ASCII), facilitated partial adoption outside military contexts, though it retained its core focus on defense needs. FIELDATA succeeded the five-bit International Telegraph Alphabet No. 2 (ITA2), which had proven inadequate for expanding military requirements in the post-World War II era, by doubling the addressable symbols without significantly increasing bandwidth demands. By the , however, it was progressively phased out in favor of the seven-bit ASCII standard, which offered greater international compatibility and support for lowercase letters, marking the transition to more universal encoding practices in both military and commercial sectors. Details of FIELDATA's symbol set, including its graphical representations for tactical diagrams, became publicly accessible in the following efforts that released historical military technical manuals.

Commercial and Standard Codes

In the 1960s, the European Computer Manufacturers Association (ECMA) proposed a six-bit character code as part of early standardization efforts for data interchange, formalized in ECMA-1 in March 1963, which defined 64 characters including the space, digits 0-9, uppercase letters A-Z, and essential such as parentheses, , and , with characters allocated to the first half of the code table. This proposal aligned closely with uppercase and symbolic subsets of the emerging ASCII standard to facilitate international compatibility in computing and telecommunications. Concurrently, the (ISO) drafted a six-bit code in 1963 through ISO/TC 97/WG B, mirroring ECMA's structure with 64 positions for printable characters and controls, but the effort was abandoned in favor of a seven-bit code by 1967 due to the need for expanded repertoires supporting lowercase letters, diacritics, and broader data processing requirements, leading to the adoption of ISO Recommendation 646. The ECMA six-bit proposal influenced the core layout of seven-bit ASCII but was not widely adopted as the rise of ASCII's 128-character capacity rendered six-bit limitations obsolete for general-purpose use. The International Computers and Tabulators (ICT), later International Computers Limited (ICL), developed a six-bit code for its 1900 series mainframes introduced in the mid-1960s, optimized for internal storage and peripheral interfaces like punch tape readers and punches. This code derived from an early 1963 ASCII variant, supporting 64 characters primarily in uppercase with digits and symbols, and was automatically translated from eight-track ISO seven-bit tape into the six-bit internal format for efficiency in UK-based business applications. A notable adaptation included the British pound (£) symbol in place of certain ASCII positions to accommodate European financial and textual needs on punch tapes. Digital Equipment Corporation (DEC) introduced the SIXBIT code in the 1970s for its series, such as the PDP-11, as a compact subset of ASCII characters from codes 32 to 95 (decimal), excluding control characters to optimize file storage and transmission in resource-constrained environments. By subtracting 32 from each ASCII value, SIXBIT mapped these 64 printable characters (uppercase letters, digits, space, and basic punctuation) directly to 0-63, preserving order for easy compatibility while packing data efficiently into six-bit fields within 18- or 36-bit words. This encoding was notably employed in operating system files for naming and string handling, enabling denser storage without lowercase or extended symbols. In the , a modern variant known as AIS SixBit emerged for compact ASCII packing in maritime (AIS) messaging, encoding strings into six-bit fields to reduce bandwidth in binary payloads over VHF radio. This approach maps 64 ASCII-derived characters (primarily printable symbols from 32-95) into six-bit values, allowing efficient transmission of textual data like ship names while maintaining with standard ASCII decoding.

Specialized and Regional Codes

The GOST 10859-64 standard, introduced in 1964 by the , defined a six-bit primarily for data processing, supporting uppercase Cyrillic letters alongside Latin characters essential for technical documentation and programming in ALGOL 60. This encoding was widely adopted in Soviet environments, particularly with BESM-6 mainframe computers produced from 1967 to 1987, where it facilitated text handling in scientific and applications. Following the 's dissolution, the GOST 10859-64 code maintained a legacy in Russian systems through the , as BESM-6 installations continued operation in research and military contexts before full transition to seven- and eight-bit encodings. In the , digital representations of emerged to enable computer-driven embossers and early refreshable displays, encoding the 63 distinct patterns of the six-dot cell—excluding the blank space configuration—using six bits where each bit directly corresponds to one dot position (bit 0 for dot 1 in the top-left, bit 1 for dot 2 above it, bit 2 for dot 3 in the middle-left, and so on through bit 5 for dot 6 in the bottom-right). This binary mapping preserved the tactile nature of for automated production, with the first such software, DOTSYS, developed in 1960 at to translate print text into via six-bit tuples. The magnetic stripe encoding specified in ISO/IEC 7811, standardized in the 1970s for identification cards including credit cards, employs a six-bit alphanumeric code per character on Track 1 (with an additional parity bit for error detection), supporting up to 79 characters of letters, numbers, and special symbols for account data and transaction details. Tracks 2 and 3 use denser five-bit numeric encodings, but the six-bit format on Track 1 enabled broader data flexibility in early financial applications. Developed for the printing industry, the Teletypesetter (TTS) , a six-bit encoding with 64 symbols including uppercase and lowercase letters, numerals, and controls, was first demonstrated in but achieved widespread adoption in the 1950s for automating slug-casting machines in newspapers and publishing houses. This extended earlier five-bit teleprinter standards by adding a sixth bit for case shift and , streamlining remote text transmission to linecasting equipment like Linotype machines.

Applications and Uses

Binary-to-Text Encoding

Binary-to-text encoding schemes using 6-bit binary groups convert arbitrary binary data into sequences of printable text characters, enabling reliable transmission over channels limited to seven-bit ASCII, such as early email systems. This approach breaks down eight-bit bytes into groups of six bits, which are then mapped to a restricted alphabet of 64 printable characters, avoiding control codes that could corrupt data in transit. For instance, three eight-bit bytes (24 bits total) are regrouped into four six-bit values, expanding the data by approximately 33% to ensure compatibility with text-only protocols. One of the earliest such schemes is , developed in the early 1980s by Mary Ann Horton at the , as part of software to attach binary files to messages. processes input in 24-bit blocks, dividing them into four six-bit segments, each indexed into a 64-character set comprising uppercase A-Z, lowercase a-z, digits 0-9, and symbols like / and +. This method served as a precursor to modern standards, allowing —such as executables or images—to be encoded as safe, human-readable text without requiring eight-bit clean channels. The process formalized in later standards, such as for (Multipurpose Internet Mail Extensions), follows a similar algorithmic structure: a 24-bit input group from three bytes is treated as four concatenated six-bit groups, with each group serving as an index (0-63) into the alphabet of A-Z, a-z, 0-9, +, and /. with '=' characters handles incomplete blocks, ensuring the output length is a multiple of four characters. Variants in , including for text-heavy data, occasionally reference six-bit principles but prioritize brevity over pure binary encoding. The choice of six bits per character was deliberate, as it aligns perfectly with symbols that fit within printable ASCII subsets, excluding non-printable controls and thus preventing transmission errors over seven-bit networks. This encoding introduces minimal overhead compared to direct eight-bit transmission, which risked in legacy systems, though it lacks built-in error correction—relying instead on underlying checksums for . By the 1990s, these six-bit-based methods had become foundational for attachments and file transfers, influencing protocols like SMTP.

Data Storage and Transmission

In the 1960s, programs on mainframes like the utilized six-bit encodings such as BCDIC for data storage in fixed-record files, enabling efficient handling of business applications including inventory systems. This approach stored each alphanumeric character in six bits, allowing up to 16,000 characters in the machine's while supporting inputs of 80 columns for compact record management. 's data division facilitated declarations of six-bit fields through PICTURE clauses, with DECLARATIVES sections providing for file I/O operations on these records, such as errors during reading or writing inventory data. The space-saving design reduced storage needs compared to seven- or eight-bit alternatives, as six bits sufficed for uppercase letters, digits, and essential punctuation in business contexts. Magnetic stripe cards, introduced in banking during the 1970s, employed six-bit alphanumerics for encoding account data on tracks like Track 1, where each character used six data bits plus one to support up to 64 symbols including letters and numbers. This format allowed up to 79 characters per track, facilitating compact storage of transaction details on cards issued starting in 1970. Error correction in these stripes relied on data framing to limit propagation of read errors, combined with checks and optional longitudinal checks per ISO/IEC 7811 s, ensuring reliable retrieval during swipes. For data transmission, six-bit codes served as successors to the five-unit in teletype networks, with proposing a six-unit code in 1960 that eliminated case shifting and supported 64 combinations for direct keyboard input in systems. The U.S. military's FIELDATA code, finalized in 1960, integrated six-bit encoding for both processing and transmission, enabling seamless data exchange in defense networks. Punch tapes complemented these efforts, using 25.4 mm-wide under the ECMA-10 standard (1965) to encode six-bit characters across seven tracks—including a parity track—for interchange among systems. Six-bit encodings offered high density advantages in 1970s minicomputers, such as those with 36-bit words like the , where each word held six characters, optimizing storage for text-heavy applications without wasting bits on unused symbols. This efficiency stemmed from roots in BCD storage schemes, allowing compact fixed-length records in resource-constrained environments.

Peripheral and Device Interfaces

In the 1950s and 1960s, six-bit character codes played a key role in teletypesetter (TTS) systems and associated printers, enabling efficient typesetting operations by supporting up to 64 glyphs for font selection and character rendering. These systems, such as the TTS Model 20, utilized a six-level code derived from earlier telegraph codes like the Murray code, incorporating lowercase letters, digits, and basic symbols to drive mechanical typesetting machines for newspaper and book production. The six-bit structure allowed for compact representation of printing controls, including justification and hyphenation signals, which streamlined hot-metal typesetting workflows in printing houses. Digital Equipment Corporation (DEC) terminals interfaced with PDP-8 and PDP-11 minicomputers employed six-bit encoding, often referred to as SIXBIT, to handle screen display and input without relying on the full seven-bit ASCII set. This approach leveraged the 12-bit word size of these systems to store two six-bit characters efficiently, supporting uppercase letters, numerals, and control codes for text-based interactions on devices like the VT05 terminal. By limiting the repertoire to 64 characters, SIXBIT reduced memory overhead and simplified serial transmission at standard rates, making it suitable for early interactive computing environments. Other peripherals, including Braille embossers from the , adapted six-bit representations to map directly to the six-dot cell, facilitating the production of tactile text from digital inputs. These devices, such as early models from DOTSYS, used six bits to correspond with dot positions, enabling translation from character codes to embossed patterns despite the prevailing shift toward eight-bit systems. In early modems, six-bit packing provided savings by compressing data before , particularly in low-speed acoustic couplers operating over lines. A notable integration occurred with the computer, introduced in 1959, where six-bit (BCD) encoding was implemented in its card readers and writers to process punched cards at speeds up to 800 cards per minute. This encoding supported 64 characters, including digits, uppercase letters, and business-oriented symbols, aligning with the Hollerith code on cards and enabling efficient for accounting and inventory applications. Six-bit codes also contributed to baud rate efficiencies in peripheral interfaces, such as teletypes operating at 110 , where —typically one start bit, seven data bits, and two stop bits—yielded an effective throughput of approximately 10 characters per second for text transmission. This configuration, common in ASR-33 teletypes connected to systems like the PDP-8, optimized mechanical printing mechanisms by balancing bit density with synchronization reliability over serial links.

Examples and Illustrations

BCD Code Mappings

The six-bit BCD code mappings, as used in early systems such as the 1401 system, assign specific patterns to alphanumeric characters and special symbols using zone bits (B and A) for and numeric bits (8, 4, 2, 1) for values. These mappings derive from conventions, enabling efficient representation of 48 primary characters within the 64 possible combinations, with the remaining codes reserved for controls, errors, or unused states. The values are structured with B as the most significant bit and 1 as the least significant bit. The following table presents the standard mappings for the variant of six-bit BCDIC, including digits 0-9, uppercase letters A-Z, and key special characters. This variant prioritizes collating sequence compatibility with punched cards, where digits occupy low numeric values and letters use zone combinations.
CharacterBinary (B A 8 4 2 1)DecimalHex
space000000000
1000001101
2000010202
3000011303
4000100404
5000101505
6000110606
7000111707
8001000808
9001001909
0001010100A
#001011110B
@001100120C
:001101130D
>001110140E
001111150F
¢0100001610
/0100011711
S0100101812
T0100111913
U0101002014
V0101012115
W0101102216
X0101112317
Y0110002418
Z0110012519
⧧ (Record mark)011010261A
,011011271B
%011100281C
=011101291D
'011110301E
"011111311F
-1000003220
J1000013321
K1000103422
L1000113523
M1001003624
N1001013725
O1001103826
P1001113927
Q1010004028
R1010014129
!101010422A
$101011432B
*101100442C
)101101452D
;101110462E
Δ101111472F
&1100004830
A1100014931
B1100105032
C1100115133
D1101005234
E1101015335
F1101105436
G1101115537
H1110005638
I1110015739
?111010583A
.111011593B
111100603C
(111101613D
<111110623E
⯒ (Group mark)111111633F
In variants used with COBOL on early IBM systems supporting six-bit codes, packed BCD formats adapted the mappings for numeric data storage, combining two digits into nine bits (with an odd parity bit) but retaining six-bit character boundaries for display. The zone bits (B and A) often encoded the numeric sign: for example, 00 in the zone for positive or unsigned values, while 11 indicated a negative sign in the high-order zone for the field, allowing efficient arithmetic without full character decoding. A practical conversion example illustrates how these mappings pack text into larger words, common in 36-bit architectures like the . For the string "ABC123", the six-bit codes are A (110001), B (110010), C (110011), 1 (000001), 2 (000010), 3 (000011). Concatenating these yields the 36-bit word: 110001110010110011000001000010000011, which could represent a single machine word for storage or transmission.

Braille Six-bit Representations

In Braille, the six-dot cell provides a natural fit for six-bit encoding, where each bit corresponds directly to one of the six possible dot positions, enabling a compact digital representation of tactile patterns. The standard mapping, as defined in the Unicode Braille Patterns block, assigns bits 0 through 5 (from least significant bit to most significant bit) to dots 1 through 6, respectively: bit 0 for dot 1 (top-left), bit 1 for dot 2 (middle-left), bit 2 for dot 3 (bottom-left), bit 3 for dot 4 (top-right), bit 4 for dot 5 (middle-right), bit 5 for dot 6 (bottom-right). A raised dot is represented by a 1 in the corresponding bit position, while an unraised dot is 0. This binary encoding allows for 64 possible combinations (2^6), including the all-zero pattern for the blank space; the remaining 63 patterns encode characters in various Braille codes. For Grade 1 Braille (uncontracted, letter-by-letter transcription), the first ten letters A–J use simple patterns primarily involving the top four dots, facilitating easy learning and digital mapping. Numbers 1–9 and 0 are formed by prefixing these letter patterns with the number sign (dots 3–4–5–6, binary 111100), which shifts the interpretation from alphabetic to numeric mode until a letter sign or space intervenes. This prefix mechanism allows the same six-bit patterns to represent numerals without additional bits. The following table illustrates the binary encodings, dot positions, and visual representations for key Grade 1 characters A–J, using simple ASCII art to depict the 2×3 cell (raised dots as ●, unraised as ○):
CharacterBinary (bit5–bit0)Raised DotsVisual
A0000011
●○
○○
○○
B0000111,2
●○
●○
○○
C0010011,4
●●
○○
○○
D0110011,4,5
●●
○●
○○
E0100011,5
●○
○●
○○
F0010111,2,4
●●
●○
○○
G0110111,2,4,5
●●
●●
○○
H0100111,2,5
●○
●●
○○
I0010102,4
○●
●○
○○
J0110102,4,5
○●
●●
○○
For historical context: In the and , early mechanical and digital translation systems, such as those developed at and described in literature, used six-bit codes to directly drive embossers by outputting binary patterns for each dot in a . These systems laid the groundwork for automated production, though they initially focused on Grade 1 to avoid complex contraction rules. Grade 2 Braille, which includes for common words and letter groups to increase reading speed, can be adapted to six-bit encoding by reassigning patterns within the same 63-symbol set; for example, the for "the" uses dots 2-3-4-6 ( 110110), distinct from alphabetic uses but still fitting the bit-to-dot framework used in early translators. However, full Grade 2 support required software mapping beyond simple bit representation, as contractions vary by language.

References

  1. [1]
    None
    Below is a merged summary of six-bit character codes based on the provided segments from "Coded Character Sets, History and Development" by Charles E. Mackenzie. To retain all information in a dense and organized manner, I will use a combination of narrative text and tables in CSV format where appropriate. The response consolidates definitions, historical development, key standards, uses in computing, precise facts for citation, and useful URLs, ensuring no information is lost.
  2. [2]
    World Power Systems:Texts:Annotated history of character codes
    This document is about character codes, specifically a history of ASCII(1), the American Standard Code for Information Interchange, and it's immediate ancestors ...
  3. [3]
    UNIVAC 1100 Series FIELDATA Character Code - Fourmilab
    FIELDATA was a 7-bit, 128-character code developed for military communications. UNIVAC used the second half of it, containing graphic characters.
  4. [4]
    [PDF] The Evolution of Character Codes, 1874-1968 - FalseDoor.com
    Earlier in. 1962, IBM had established an internal standard for the six-bit binary representation of the decimal-oriented. Hollerith card code, which was ...
  5. [5]
    A Short History of Character Sets. - gnomedia codeworks
    Nov 22, 2003 · It was a 6-bit code (the standard size of a character in those days). In June 1963, on the basis of the FIELDATA codes, the American Standards ...Missing: six- | Show results with:six-
  6. [6]
    Doug Jones's punched card codes
    IBM's BCD codes were all more complex, partly because of a desire to represent the numeral zero with the 6-bit numeric code 000000 (in the IBM 704, 709, 7040 ...
  7. [7]
    [PDF] The Evolution of Character Codes, 1874-1968
    Charles Mackenzie, who was present at the meeting, explains in his book,. Coded Character Sets, History and Development, that. ''it was forecast that, in the ...
  8. [8]
    The IBM punched card
    Data was assigned to the card by punching holes, each one representing a character, in each column. When writing a program, one card represented a line of code ...
  9. [9]
    The IBM 704 - Columbia University
    The IBM 704 Computer (1954). ... The 704's 6-bit BCD character set and 36-bit word account for FORTRAN's 6-character limit on identifiers. IBM 704 at Lawrence ...
  10. [10]
  11. [11]
    DEC/PDP Character Codes - Rabbit
    DEC Six-bit, was simply the 64 basic ASCII characters, with codes from 32-95 (decimal) or 20-5F (hexadecimal) or 40-77 (octal), in exactly the same order, but ...
  12. [12]
    IBM 1401 overview
    Jan 27, 2015 · The basic unit of information is a six-bit character, consisting of a four-bit digit part (8-4-2-1) and a two-bit zone part (B-A). The ...
  13. [13]
    Jones on BCD Arithmetic
    Many early computers used 6-bit BCD codes, where each BCD digit was padded to 6 bits. This was compatable with the 36, 48 and 60 bit words used by many ...Missing: six- | Show results with:six-
  14. [14]
    [PDF] BINARY-CODED DECIMAL (BCD)
    IBM used the terms binary-coded decimal and BCD for six-bit alphameric codes that represented numbers, upper-case letters and special characters. Some variation.Missing: techniques | Show results with:techniques
  15. [15]
    [PDF] Reference Manual, IBM 1401 Data Processing System - Bitsavers.org
    This manual is a reference text for the IBM 1401 Data. Processing System. It provides a detailed explanation of operation codes and the function of the ...
  16. [16]
    IBM 1401 Programming - curiousmarc.com
    There are 6 bits for the BCD character (called 1, 2, 4, 8 , A and B ... 6 BCD bits + 1 parity bit + 1 Word Mark bit. This the IBM 1401 memory has 8 ...
  17. [17]
  18. [18]
    Packed six-bit characters - NDWiki
    Mar 24, 2015 · Packed six-bit characters is a method used by Norsk Data to create compact character strings. Each character is encoded in 6 bits.
  19. [19]
    A Brief History of Character Codes
    Aug 6, 2004 · The individual characters of the scripts that humans use to record and transmit their languages are encoded in the form of binary numerical codes.Missing: motivation | Show results with:motivation
  20. [20]
    How it was: ASCII, EBCDIC, ISO, and Unicode - EE Times
    One final point is that ASCII is a 7-bit code, which means that it only uses the binary values %0000000 through %1111111 (that is, 0 through 127 in decimal or ...
  21. [21]
    ASCII and EBCDIC compared - Dynamoo.com
    EBCDIC uses the full 8 bits available to it, so parity checking cannot be used on an 8 bit system. Also, EBCDIC has a wider range of control characters than ...<|control11|><|separator|>
  22. [22]
    [PDF] IBM 7070 Data Processing System - Bitsavers.org
    The changes in this edition reflect the increased number of tape units that can be attached to the system because of the addition of two more channel controls.
  23. [23]
    [PDF] COBOL (on Tape) Operating Procedures - IBM 1401 - Bitsavers.org
    Place a current version of 1401 Autocoder on tape unit 1. 2. Ready a tape on tape unit 6. 3. Place either the 4K or> 4K COBOL subroutines in the card ...
  24. [24]
    [PDF] leL 1900 Series
    1925 PAPER TAPE PUNCH: Punches 5, 6, 7, or 8-track tape at up to 110 char/sec. Automatically translates the. 6-bit internal code into the 8-track ICL 1900 paper ...
  25. [25]
    [PDF] paper tape reader - Bitsavers.org
    Codes. The preferred code is the International. Standards Organization seven-bit on eight-track tape. This is automatically condensed into a six-bit code by the.Missing: ICL European
  26. [26]
    ICL 1900 Character sets - CalvaEDI
    For conversion between the internal 6 bit code and ECMA codes a shift system is used. Three 6 bit codes were used as α (alpha), β (beta) and δ (delta) shifts.Missing: punch | Show results with:punch
  27. [27]
    Who invented file extensions in file names?
    Nov 1, 2023 · Although the official character encoding was 8 bit EBCDIC, names were encoded as pairs of 16 bit words using 6 bit characters. This left two ...
  28. [28]
    AIVDM/AIVDO protocol decoding - GitLab
    Jun 24, 2023 · Character-string fields within AIS messages are encoded in a special way, referred to as "six-bit" in the tables below. First, chop the string ...Introduction · Standards · AIS Payload Data Types · AIS Payload Interpretation
  29. [29]
    Computer Arithmetic
    A character set that was more comprehensive in its inclusion of those characters was the GOST 10859-64 character set used in the Soviet Union, with the BESM-6 ...
  30. [30]
    The Punched Card
    This is the card code used in the former Soviet Union in association with the GOST 10859-64 character ... bit code. [Next] [Up] [Previous] [Home] [Other]
  31. [31]
    BESM-6 supercomputer - CHM Revolution
    This large Soviet-designed computer system was introduced in 1968 and remained in use for over twenty years. Over 350 were built.
  32. [32]
    Braille Codes and Characters: History and Current Use - Part 1
    With only six dots in a braille cell, representing the more than ten thousand print characters found in today's world has become a real challenge. The codes ...Missing: encoding | Show results with:encoding
  33. [33]
    Early History of Braille Translators and Embossers - Duxbury Systems
    To drive the BraillEmboss from DOTSYS, I recall using a code that was really a binary code with 8 bits, 6 of which corresponded 1-1 with the dots of braille.
  34. [34]
    [PDF] MAGNETIC STRIPE CARD STANDARDS - MagTek
    ISO. 7810. Physical characteristics of credit card size document. 7811-1 Embossing. 7811-2 Magnetic stripe - low coercivity. 7811-3 Location of embossed ...
  35. [35]
    How does a magnetic stripe on the back of a credit card work?
    The ISO/IEC standard 7811, which is used by banks, specifies: Track one is 210 bits per inch (bpi), and holds 79 six-bit plus parity bit read-only characters.
  36. [36]
    Teleprinter - Academic Dictionaries and Encyclopedias
    *20 - 1950s - upper/lower case printer machine with four rows of keys, using a six-bit code for TeleTypeSetter (TTS) use *28 - 1950s - regarded as the most ...
  37. [37]
    Some Printing Telegraph Codes as Products of their Technologies
    More to the point here, ASCII is as much a 7-bit punched tape code and communications line control code as it is anything else. Several of the more ...
  38. [38]
    RFC 4648 - The Base16, Base32, and Base64 Data Encodings
    This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data.
  39. [39]
    uuencode
    The encoding process represents 24-bit groups of input bits as output strings of four encoded characters. Proceeding from left to right, a 24-bit input group ...
  40. [40]
    What is the Uuencode (Uuencode/Uudecode) command and how ...
    Jun 17, 2021 · How does Uuencode work? Uuencode takes in a group of three pre-formatted bytes (24 bits) and splits them into four groups of six bits each.
  41. [41]
    How Mary Ann Horton invented the email attachment, then ...
    May 1, 2018 · As a student, Horton contributed to Berkeley UNIX (BSD), including the vi editor and terminfo database, and created the first email attachment tool, uuencode.
  42. [42]
    Email Attachments - Mary Ann Horton
    I wrote a dumb little program called “uuencode” to address this. All it did was turn a binary file into a text file by making it about 30% larger.
  43. [43]
    RFC 1341: MIME (Multipurpose Internet Mail Extensions)
    The base64 encoding is adapted from RFC 1113, with one change: base64 ... These 24 bits are then treated as 4 concatenated 6-bit groups, each of which ...Missing: six- | Show results with:six-
  44. [44]
    Creating a Christmas card on a vintage IBM 1401 mainframe
    (Actually the 1401 predates ASCII and uses a 6-bit BCD-based character set called BCDIC, so it's really BCDIC graphics. (EBCDIC came later, extending BCDIC to 8 ...Missing: six- | Show results with:six-
  45. [45]
    Data Description - COBOL IT Compiler Suite
    When using USAGE BIT , the exact numbers of bits are used that are allocated in the current bit field . For example, the following declaration allocates 3 bytes ...Missing: six- | Show results with:six-
  46. [46]
    Reading Magnetic Card Data - j2i.net
    Jun 18, 2024 · The data on track 1 of the cards is encoded in 7 bits; 6 bits are data, 1 bit is for parity. This means that only 64 possible characters could ...Missing: 1970s banking
  47. [47]
    ISO/IEC 7811-7:2018 - Identification cards — Recording technique
    This document specifies requirements for a high coercivity magnetic stripe (including any protective overlay) on an identification card and encoding technique.
  48. [48]
    ECMA-10 - ECMA STANDARD for Data Interchange on Punched Tape
    Jan 5, 2016 · 3.3.4 6 bit character code. Punched tape 25,4 mm wide shall be used for the 6 bit character code. The bits within each character shall ...Missing: exchange six-
  49. [49]
    UNIVAC 1100/2200 series - Wikipedia
    The UNIVAC 1105 was the successor to the 1103A, and was introduced in 1958. ... "UNIVAC 1100 Series FIELDATA Code". UNIVAC Memories. Archived from the ...
  50. [50]
    Teletypes in Typesetting
    This is a 6-bit "superset" of the 5-bit teletypewriter code. The added bit is designated "0" to fit in with its placement across the six-track perforated tape.Missing: 1950s industry
  51. [51]
    [PDF] A Field Guide to the Teletypesetter - GalleyRack.com
    By the 1960s and 1970s Teletypesetter and 6-level tape technology had begun to create an entire small industry of computerized typesetting equipment capable ...
  52. [52]
    DEC PDP-8 - Manuel Duarte
    Six-bit character codes were in widespread use at the time, and the PDP-8's twelve-bit words can efficiently store two such characters. In addition, a six ...
  53. [53]
    How did the PDP-8 handle strings? - Retrocomputing Stack Exchange
    Mar 1, 2018 · PDP-8 programs that emit predefined messages almost always use the upper-case only 64 char TTY set, and store them as two 6-bit chars per word.How were terminals connected to a PDP-11 computer?Was the MC6800 based on the PDP-11 or PDP-8?More results from retrocomputing.stackexchange.com
  54. [54]
    PDP-8 architecture - Computer History Wiki
    Nov 29, 2022 · The PDP-8 is a 12-bit architecture from DEC; the first commercially successful minicomputer. It was a load-store architecture.<|separator|>
  55. [55]
    How It Works: Linking the Computer and the World, the Clever Modem
    Nov 12, 1998 · They ran at 110 baud, sending one bit per symbol, or 110 bits per second (bps). The 300-baud modems that showed up in the early 70's were an ...
  56. [56]
    The IBM 1401 - Columbia University
    As Bill explains, six of the bits were used for character coding, using a system known as BCD based on the code used in IBM punched cards. The seventh bit ...
  57. [57]
    Booting the IBM 1401: How a 1959 punch-card computer loads a ...
    Feb 22, 2021 · To implement word marks, each memory location had 6 bits to hold a character as well as a separate bit to hold the word mark. (These were ...Missing: six- packing
  58. [58]
    Teletype Model 33 - Wikipedia
    The paper tape reader and punch can handle eight-bit data, allowing the devices to be efficiently used to download or upload binary data for computers.
  59. [59]
    Teletype Machines - Columbia University
    To this day certain characteristics of the Teletype live on in the 110-"baud" 2-stop-bits configuration required to synchronize with the Teletype printing ...Missing: six- code rate efficiency<|control11|><|separator|>
  60. [60]
  61. [61]
  62. [62]
    [PDF] Braille transcription and mechanical translation
    In the project outlined here the output of the computer presents the Braille characters as a series of six "1's" or "0's" corresponding to the six Braille dots.
  63. [63]