Any file format for digital data
that does not consist of a sequence of printable characters
). The term is often used for executable machine code
All digital data, including characters, is actually binary data (unless it uses some (rare) system with more than two discrete levels) but the distinction between binary and text is well established. On modern operating systems
a text file is simply a binary file that happens to contain only printable characters, but some older systems distinguish the two file types, requiring programs to handle them differently.
A common class of binary files is programs in machine language
files") ready to load into memory and execute. Binary files may also be used to store data output by a program, and intended to be read by that or another program but not by humans. Binary files are more efficient for this purpose because the data (e.g. numerical data) does not need to be converted between the binary form used by the CPU
and a printable (ASCII) representation. The disadvantage is that it is usually necessary to write special purpose programs to manipulate such files since most general purpose utilities operate on text files. There is also a problem sharing binary numerical data between processors with different endian
Some communications protocols
handle only text files, e.g. most electronic mail
systems before MIME
became widespread in about 1995. The FTP
utility must be put into "binary" mode in order to copy a binary file since in its default "ascii" mode translates between the different newline
characters used on the sending and receiving computers.
Confusingly, some word processor
files, and rich text files, are actually binary files because they contain non-printable characters and require special programs to view, edit and print them.