# Binärdatei

Eine Binärdatei (englisch binary file) ist eine Computerdatei, die keine Textdatei ist, die also nicht nur Repräsentationen ‚druckbarer‘ Zeichen enthält, sondern die beliebige Bitmuster enthalten kann. Binärdateien können je nach Format auch Datenteile enthalten, die als Texte/Zeichen interpretierbar sind.
Dateien im Binärformat werden von den meisten Computerprogrammen verwendet, um die Daten strukturell an den Anforderungen der Verarbeitung auszurichten oder bestimmte Datenfelder optimiert zu speichern. Insbesondere werden auch direkt ausführbare Programme als Binärdatei gespeichert und dabei oft „Binärcode“ genannt.

## Hintergrund

Grundsätzlich sind Binärdateien als solche daran erkennbar, dass der Dateiinhalt, mit einem üblichen Texteditor angezeigt, keine oder überwiegend keine lesbaren Zeichen enthält. Der Versuch, eine Binärdatei als Textdatei zu interpretieren (beispielsweise durch Öffnen mit einem Texteditor), ergibt dann unleserlichen bzw. unsinnigen Text. Für die meisten der heute verwendeten 8-Bit-Zeichensätze gilt: nicht lesbare Steuerzeichen umfassen Zeichen mit ASCII-Werten von 0 bis 31, lesbare Zeichen die mit Werten von 32 bis 126. Die Lesbarkeit von Zeichen mit Werten ab 127 ist abhängig vom verwendeten Zeichensatz. Textdateien können auch gewisse Steuerzeichen enthalten, ohne dass sie deshalb als Binärdatei gelten; dazu gehören Steuerzeichen für Zeilenvorschub, Wagenrücklauf, Seitenvorschub (Seitenumbruch) und Tabulatorzeichen.
Weil Binärdateien alle möglichen Bit-Kombinationen nutzen, bieten sie eine höhere Informationsdichte als Textdateien. Deshalb benötigen sie meist weniger Speicherplatz auf Massenspeichern und lassen sich schneller laden und speichern. Ferner lassen sich darin verschiedene Objekttypen (beispielsweise Text mit Bildern) relativ einfach ablegen.
Binärformate werden beim Austausch über verschiedene Plattformen hinweg (beispielsweise Windows, Macintosh, Linux) nicht beschädigt, da die jeweiligen Softwarekomponenten nicht versuchen, die Dateien für die Zielplattform zu konvertieren. Andererseits wird der systemübergreifende Datenaustausch erschwert, da Binärdateien häufig Daten in einem systemabhängigen Format enthalten. (Beispielsweise Zahlen im Big- oder Little-Endian-Format.) Die Spezifikation des Dateiformats einer Binärdatei legt fest, wie mit der Datei zu verfahren ist. Zum Lesen, Bearbeiten und Speichern binärer Datenformate benötigt man im Allgemeinen spezielle, auf das Dateiformat abgestimmte Editoren (beispielsweise Textverarbeitung für Office-Texte, ein Bildbearbeitungsprogramm für Fotos, regedit für die Windows-Registrierungsdatenbank).
Zu beachten ist, dass man unter einer Binärdatei bzw. unter Binärformat nicht Daten versteht, die nur aus den (sichtbaren) Zeichen „0“ und „1“ aufgebaut sind – wie die Namensanalogie zu Hex(adezimal)datei nahelegen könnte. Binärdatei bedeutet auch nicht, dass die Daten nur aus binären „0“ und „1“ bestehen – weil das auch bei Text-Zeichensätzen der Fall ist. Auch ist eine Datei, die von einem Textverarbeitungsprogramm erzeugt wurde, meist (abhängig vom Dateiformat) keine reine Textdatei im engeren Sinn, sondern eine Binärdatei, in der zum Beispiel Formatangaben und andere Steuerzeichen nicht mit einem lesbaren Zeichensatz codiert sind. Solche Dateien, zum Beispiel im Rich-Text-Format, sind insofern eine Mischform aus Text- und Binärdatei.

## Beispiele

Computerprogramme sind ein typisches Beispiel für Binärdateien, denn sie enthalten Prozessorbefehle und Daten, die jeden beliebigen Bytewert annehmen können. Aus diesem Grund nennt man die ausführbaren Dateien von kompilierten Programmen oft einfach ‚Binaries‘. Im Gegensatz dazu ist der Quelltext häufig als Textdatei gespeichert.
Weitere Beispiele für Binärdateien sind Bilddateien, Audiodateien, komprimierte Dateien (Archivdateien), Daten für Programme zur Tabellenkalkulation, Daten umfangreicher Officepakete, mit Datenbanksystemen verwaltete Daten u. v. a.

## Kodierte Binärdaten

Binärdaten sind prinzipiell nicht als reiner Text darstellbar, können jedoch in einer Nur-Text-Repräsentation (in kodierter Form) eingefügt werden. Standardisierte Kodierverfahren sind z. B. Base64 (oder ähnliche, wie die kaum verbreiteten Base85 oder basE91) sowie UUencode.
Als Text kodierte Binärdaten werden u. a. bei der Übertragung von Binärdateien in rein textbasierten Protokollen wie z. B. SMTP und HTTP oder Formaten wie z. B. XML und MIME häufig verwendet. Die Kodierverfahren sind reversibel, damit aus den Textdaten wieder Binärdaten dekodiert werden können.
Ein konkretes Beispiel, wo dies häufig stattfindet, sind auch E-Mails, in denen u. a. JPEG-Grafiken in einer Textdatei (als .eml-Datei) enthalten sind. Beim Lesen, z. B. durch das Öffnen der .eml-Datei in einem E-Mail-Client, werden die Binärdaten vom Programm wieder umgewandelt und entsprechend angezeigt, beispielsweise als JPEG-Bild in der Nachricht, oder auch als Anhang, der wieder als Binärdatei gespeichert werden kann („Speichern unter...“).

## Binärdateien ansehen

Um den unverfälschten Inhalt einer Binärdatei anzusehen, ist zusätzliche Software erforderlich. Für diese Aufgabe werden Hex-Editoren verwendet. Wird hingegen versucht, eine Binärdatei mit einem Texteditor oder auf der Kommandozeilenebene anzuschauen, dann wird der Inhalt verfälscht dargestellt (siehe Bild). Das rührt daher, dass bestimmte Bytes oder ganze Bytefolgen als Steuerzeichen bzw. Steuersequenzen interpretiert werden. Dies äußert sich in den meisten Fällen in einem Konzert aus häufigem Piepsen (etwa beim Bell-Steuerzeichen), Zeichensalat oder auch gar keiner Ausgabe. Der Grund dafür ist, dass in Binärdateien häufig alle möglichen 256 Zustände eines Oktettes anzutreffen sind.
Nützliche Werkzeuge zum Betrachten des Inhaltes von Binärdateien unter Unix und Linux sind od (Abkürzung für englisch octal dump – oktales Speicherabbild), hexdump (für hexadecimal dump) oder strings.
Wie die acht Bit eines Oktettes verwendet werden, um Dezimalzahlen oder Hexadezimalzahlen darzustellen, ist unter Dualsystem beschrieben.