<tool, messaging, algorithm, file format> /B too A/ A binary to ASCII
btoa is a uuencode or base 64 equivalent which addresses some of the problems
with the uuencode standard but not as many as the base 64 standard. It avoids
problems that some hosts have with spaces (e.g. conversion of groups of spaces
to tabs) by not including them in its character set, but may still have problems
on non-ASCII systems (e.g. EBCDIC).
btoa is primarily used to transfer binary files between systems across
connections which are not eight-bit clean, e.g. electronic mail.
btoa takes adjacent sets of four binary octets and encodes them as five ASCII
octets using ASCII characters '!' through to 'u'. Special characters are also
used: 'x' marks the beginning or end of the archive; 'z' marks four consecutive
zeros and 'y' (version 5.2) four consecutive spaces.
Each group of four octets is processed as a 32-bit integer. Call this 'I'. Let
'D' = 85^4. Divide I by D. Call this result 'R'. Make I = I - (R * D) to avoid
overflow on the next step. Repeat, for values of D = 85^3, 85^2, 85 and 1. At
each step, to convert R to the output character add decimal 33 (output octet = R
+ ASCII value for '!'). Five output octets are produced.
btoa provides some integrity checking in the form of a line checksum, and
facilities for patching corrupted downloads.
The algorithm used by btoa is more efficient than uuencode or base 64. ASCII
files are encoded to about 120% the size of their binary sources. This compares
with 135% for uuencode or base 64.
C source. (version 5.2 - ~1994).
Pre-compiled MS-DOS versions are also available.
BST « bt « BTB « btoa » B-Toolkit » BTOS »