Jump to content

Binary file

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Paulnasca (talk | contribs) at 09:56, 27 April 2006 (added image of a hexdump of a jpeg binary file). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Hexdump of a JPEG image

A binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text. Many binary file formats contain parts that can be interpreted as text; binary files that contain only textual data - without, for example, any formatting information - are called plain text files. In ordinary usage they are typically contrasted with binary files, so that binary files are all files which do not contain merely plain text.

Binary file formats

Binary files are usually thought of as being a sequence of bytes, which means the binary digits (bits) are grouped in eights. Binary files typically contain bytes that are intended to be interpreted as something other than text characters. Compiled computer programs are typical examples; indeed, compiled applications (object files) are sometimes referred to, particularly by programmers, as binaries. But binary files can also contain images, sounds, compressed versions of other files, etc. — in short, any type of file content whatsoever.

Some binary files contain headers, blocks of metadata used by a computer program to interpret the data in the file. For example, a GIF file can contain multiple images, and headers are used to identify and describe each block of image data. If a binary file does not contain any headers, it may be called a flat binary file.

Manipulating binary files

To send binary files through certain systems (such as e-mail) that do not allow all data values, they are often translated into a plain text representation (using, for example, Base64). This encoding has the disadvantage of increasing the file's size by approximately 30% during the transfer, as well as requiring translation back into binary after receipt. See Binary to text encoding for more on this subject.

Microsoft Windows allows the programmer to specify a system call parameter indicating if a file is text or binary; Unix does not, and treats all files as binary. This reflects the fact that the distinction between the two types of files is to a certain extent arbitrary.

Viewing binary files

If you open a binary file in a text editor, each group of eight bits will typically be translated as a single character, and you will see a (probably unintelligible) display of textual characters. If you were to open it in some other application, that application will have its own use for each byte: maybe the application will treat each byte as a number and output a stream of numbers between 0 and 255 — or maybe interpret the numbers in the bytes as colors and display the corresponding picture. If the file is itself treated as an executable and run, then the computer will attempt to interpret the file as a series of instructions in its machine language.

A hex editor may be used to view hexadecimal (and possibly also decimal, binary or ASCII character) values for corresponding bytes of a binary file. The bytes may then be manipulated by changing the hexadecimal value in the hex editor.