Warum heißen Hex-Editoren Binär-Editoren?

84

Hex und Binär sind zwei verschiedene Basen. Nach meinem Verständnis ist Hex einfach eine benutzerfreundlichere und bequemere Version von Binary.

Ich höre jedoch oft, dass Hex-Editoren Binäreditoren sind. Wenn Sie bei Google nach "Binäreditor" suchen, erhalten Sie Hex-Editoren.

Joseph A.
quelle
3
Hex ist eine etwas lesbare Darstellung von Binärdaten.
Salman A

Antworten:

188

Ein Binäreditor bearbeitet eine Datei als Binärdatei .

Binärdatei - Wikipedia

Eine Binärdatei ist eine Computerdatei, die keine Textdatei ist. Der Begriff "Binärdatei" wird häufig als Begriff verwendet, der "Nicht-Textdatei" bedeutet, und wird üblicherweise als eine Folge von Bytes angesehen. ... Binärdateien enthalten normalerweise Bytes, die nicht als Textzeichen interpretiert werden sollen.

Ein Hex-Editor ist eine Art Binär-Editor, in dem die Daten als Hexadezimalzahl dargestellt werden .

Hex Editor - Wikipedia

Ein Hex-Editor (oder ein Binärdatei-Editor oder ein Byte-Editor ) ist eine Art Computerprogramm, mit dem die grundlegenden Binärdaten einer Computerdatei bearbeitet werden können. Der Name 'hex' kommt von 'hexadezimal': Eine Standarddarstellung für Zahlen, deren Basis 16 ist.

Steven
quelle
85

Terminologie ist schwer. Verschiedene Leute haben alle möglichen Namen für Dinge.

In diesem Fall scheint sich das Hex im "Hex-Editor" auf die konventionelle, von Menschen lesbare Darstellung des Werts jedes Bytes zu beziehen , während sich das Binär im "Binär-Editor" auf die Vorstellung bezieht, dass Sie die Datei tatsächlich am Byte bearbeiten Layer (und Computer speichern Bytes in Binärform), ohne Rücksicht auf Textcodierung auf höherer Ebene und dergleichen. Denken Sie daran, dass Dateien, die in Textform höherer Ebene nicht ohne weiteres darstellbar sind, aus demselben Grund als "Binärdateien" oder "Binärdateien" bezeichnet werden.

Weder ist technisch falsch; Sie kommen nur aus verschiedenen Blickwinkeln auf das Benennungsproblem. In persönlicher Hinsicht stimme ich jedoch eher zu, dass der "Binär-Editor" im Großen und Ganzen verwirrend ist.

Leichtigkeitsrennen im Orbit
quelle
58

Anzeige des Binäreditors (binär)

00000000 | 11111011 11111011 11111011 11111011 11110101 11111011 11111011 11111011
00001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00010000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00011000 | 11110101 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00100000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00101000 | 11111011 11111011 11101111 11111011 11111011 11111011 11111011 11111011
00110000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00111000 | 11111011 11111011 11111011 11101111 11111011 11111011 11111011 11111011
01000000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01010000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01011000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01100000 | 11111011 11111011 11111011 11111011 11111011 11101111 11111011 11111011
01101000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011

Binäreditor-Anzeige (hexadezimal)

00 | fb fb fb fb f5 fb fb fb fb fb fb fb fb fb fb fb
10 | fb fb fb fb fb fb fb fb f5 fb fb fb fb fb fb fb 
20 | fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb fb 
30 | fb fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb 
40 | fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb 
50 | ef fb fb fb fb fb fb fb ef fb fb fb fb fb fb fb 
60 | fb fb fb fb fb ef fb fb fb fb fb fb fb fb fb fb

Es ist wahr, dass ein Binäreditor Sie mit Bytes in Binärdaten umgehen lassen sollte, aber wie Sie sehen, ist die Basis 2 zu klein, um kompakte Zahlen zu ergeben.

Binär wie roh, nicht Basis zwei

Im Allgemeinen bezieht sich " binär " im Binäreditor nicht auf die Basis zwei, sondern ist das Antonyme von " Texteditor ".
Der Unterschied besteht darin, dass Texteditoren so konzipiert sind, dass sie Text anzeigen. Daher müssen nicht druckbare Zeichen, neue Zeilen, Steuerzeichen, ungültige utf-8-Codeeinheiten usw. nicht sicher behandelt werden.
Das bloße Öffnen und sofortige Speichern einer Datei kann diese ändern (aufgrund von internen Konvertierungen des Editors, Fehlern).

Binäre Editoren versuchen hingegen nicht, den Daten eine Semantik zuzuweisen, und lassen den Benutzer sie sicher als einen Strom von Bytes / Bits / Wörtern behandeln.

Hexadezimale Editoren

Der perfekte Binäreditor würde jedes mögliche Binärformat kennen und Sie es bearbeiten lassen, aber da jeder sein eigenes Binärformat erstellen kann und es sich sehr oft ändert, ist es vergeblich, zu versuchen, alle Formate zu unterstützen.
Das Beste, was ein Editor tun kann, ist, die Bytes selbst anzuzeigen. Aufgrund der bereits diskutierten Eigenschaften der Basis 16 sind Hexadezimalzahlen sehr praktisch!

Auch ein erfahrener Benutzer kann bin mental in hex übersetzen, während er es liest.
Das Setzen / Herausholen eines Bits aus einem Byte, das in hex geschrieben ist, ist wirklich absolut nicht mühsamer als ein Byte, das in bin geschrieben ist.
Um ehrlich zu sein, fand ich hex einfacher als binär zu lesen.

Margaret Bloom
quelle
1
Schöne Beispiele, die den Unterschied zeigen. Wenn man sie tatsächlich nebeneinander sieht, sieht das Hex so viel schöner aus
DrZoo
1
@DrZoo Wenn es sich nicht um Bitfelder handelt, ist die binäre Darstellung in diesem Fall viel besser! en.wikipedia.org/wiki/Bit_field .
Mischa256
6
misha256: ehrlich gesagt, wenn ich hex anschaue - sehe ich binär. Ich lese "f", aber mein Gehirn sagt sofort "1111". Es ist wie ein Betrachten der Matrix in kompakter Form. :)
tdrury
4
+1 für die Betonung "Binär als roh, nicht Basis zwei"
Kelvin
5
@tdrury guter Punkt, ich nehme an, nach einer Weile "sehen" Sie, was Sie brauchen, um zu sehen, unabhängig davon, wie es ausgedrückt wird. Haha, ja, Matrix! Erinnert mich an einen Mann, mit dem ich zur Schule gegangen bin und der glücklich Maschinensprache in hexadezimal oder dezimal codiert hat und frei zwischen den beiden konvertieren konnte. Er kannte alle Op-Codes auswendig und sah Bitfelder und andere gepackte Datenstrukturen, als wäre es seine Muttersprache. Das waren wohlgemerkt die 64 Tage des Commodore (viel einfachere Tage), aber immer noch ein beeindruckendes Talent.
Mischa256
15

Warum heißen Hex-Editoren Binär-Editoren?

Zusammenfassung:

Mit einem Hex-Editor können Sie eine Binärdatei direkt bearbeiten, indem Sie den Binärinhalt im Hexadezimalformat anzeigen und das Ändern dieser Hexadezimalzahlen zulassen.

Anmerkungen:

  • Hex Editors ermöglicht die Bearbeitung des Rohdateninhalts einer Datei anstelle anderer Programme, die versuchen, die Daten zu interpretieren.

  • Hex-Editoren, auch Binary-Editoren oder Byte-Editoren genannt.

  • Sie als Binär-Editoren oder Byte-Editoren zu bezeichnen, ist nicht richtig, da die Editoren Hexadezimalzahlen und keine Binärzahlen oder Bytes ändern (natürlich ändern sich die zugrunde liegenden Binärzahlen und Bytes, wenn die Datei gespeichert wird).

Warum bearbeiten wir Binärverwendung hexadezimal?

Es ist einfacher, Binärdateien direkt anzuzeigen oder zu bearbeiten / zu ändern, indem die Daten in hexadezimaler Form angezeigt und die hexadezimalen Werte geändert werden.

  • Eine bequeme Art, Binärzahlen darzustellen, ist die Verwendung von Hexadezimalzahlen.

  • In der Vergangenheit wurden Computer in Assemblersprache programmiert, wobei Code unter Verwendung von Prozessoranweisungen und Metaanweisungen (bekannt als Direktiven, Pseudoanweisungen und Pseudooperationen), Kommentaren und Daten geschrieben wurde.

    • Der Code wird mit einem Assembler in eine Binärdatei übersetzt. Der Binärcode kann dann in einen Prozess geladen und ausgeführt werden.

    • Ohne den Quellcode ist es einfacher, das Programm direkt mit einem Editor zu ändern, der das Programm eher hexadezimal als binär anzeigt.

  • Binärcode ist für Menschen leichter lesbar, wenn er in hexadezimal umgewandelt wird.

    Welches Zahlenpaar ist zum Beispiel leichter zu merken oder vorzulesen?

    10110000 01100001
    

    Oder

    B0 61
    
  • Jede hexadezimale Ziffer repräsentiert vier Binärziffern (Bits). Eine hexadezimale Ziffer steht für ein Halbbyte, also ein halbes Oktett oder Byte (8 Bit).

    Beispielsweise können die Bytewerte zwischen 0 und 255 (dezimal) liegen, sie können jedoch bequemer als zwei hexadezimale Ziffern im Bereich von 00 bis FF dargestellt werden.

  • Hexadezimal wird auch häufig zur Darstellung von Computerspeicheradressen verwendet.

DavidPostill
quelle
3
Beachten Sie auch, dass Base 64 möglicherweise noch einfacher zu merken ist, wir uns jedoch an Hex halten, da es die nette Eigenschaft hat, 2 Zeichen ⇒ 1 Byte zuzuordnen.
PythonNut
9

Je nach Programmiersprache und Betriebssystemkonvention gibt es zwei Arten von Dateien:

  • Textdateien, die aus einer Folge von Textzeilen bestehen, wobei jede Zeile aus einer Folge druckbarer Zeichen (einschließlich einiger Steuerzeichen) besteht und am Zeilenende endet
  • Binärdateien, die eine beliebige Reihe von Bytes enthalten, einschließlich des Nullbytes, das in einer Textdatei verboten ist.

Texteditoren können Textdateien öffnen, während Binäreditoren keine Einschränkungen hinsichtlich der Art der Dateien haben, die sie verarbeiten.

Die Tatsache, dass Binär-Editoren häufig Daten in hexadezimaler Schreibweise darstellen und eingeben können, ist nur eine Annehmlichkeit (sie zeigen häufig ASCII-Zeichen an und ermöglichen auch das Ersetzen von ASCII-Zeichen). Nur das Anzeigen von Daten in reiner Binärdarstellung würde die Lesbarkeit der Daten beeinträchtigen.

Ein beliebter Binäreditor heißt HexEdit .

Bildbeschreibung hier eingeben

Es versteht sich zu Recht sowohl als Binär-Editor als auch als Hex-Editor:

Bildbeschreibung hier eingeben

Es gibt sogar die Möglichkeit, die Daten nicht in hexadezimaler Form anzuzeigen, sondern nur den Text

Bildbeschreibung hier eingeben

jlliagre
quelle
5

Dateien auf der überwiegenden Mehrheit der heutigen Computer bestehen aus 8-Bit- Bytes . Das ist normalerweise die Abstraktion, mit der man arbeitet, wenn man eine Datei direkt bearbeitet.

Natürlich gibt es Gelegenheit, einzelne Datenbits tatsächlich zu bearbeiten, aber nicht oft. Gängige Operationen auf Bitebene wie das Setzen von Bit 7 sind mit Hex ohnehin einfach durchzuführen - 1000 0000 base2 = 80 base16 . Wenn also ein Hex-Wert unter 80 base2 liegt, ist Bit 7 gelöscht und fügt 8 base16 hinzu gesetzt.

Andere Gründe, warum hex stärker mit dieser Art von Aktivität verbunden ist:

  • Hexadezimalwerte sind leichter zu erkennen, wenn Sie visuell nach bekannten Werten suchen. Beispiel: 20 base16 = 32 ist ein ASCII-Raum, aber der gleiche Wert 0010 0000 base2 ist bei einer Flut von anderen ausgelagerten Werten nicht so einfach als solcher zu erkennen.

  • Bei alten Systemen, bei denen Sie dies regelmäßig benötigen, ist möglicherweise der Bildschirmbereich begrenzt (z. B. 40 Spalten). Der Apple IIe ROM-Monitor ist ein hervorragendes Beispiel. Er kann den hexadezimalen Speicher für das integrierte Video mit 40 Spalten sichern, und wenn Sie die Werte auf einem 80 x 24-Bildschirm auf Binär umwandeln, geht Ihnen schnell der Raum aus. Bei diesen alten Systemen ist es auch einfacher, Routinen zu schreiben, um eingegebene ASCII-Werte wieder in die richtigen Werte umzuwandeln. Wichtig, wenn 4 KB RAM als viel Arbeitsspeicher angesehen wurden und Systeme möglicherweise nur so viel ROM hatten.

  • Das Wort "hex" klingt besser, ist kürzer und einfacher zu tippen.

LawrenceC
quelle
5

Wenn Leute hex benutzen, denken sie normalerweise binär und benutzen das hex als Kurzschreibweise.

Sechzehn ist eine Potenz von 2. Acht ist auch eine Potenz von zwei. Daher wurden 16 und 8 für die Kurzschreibweise von Binärdaten verwendet. Die manuelle Konvertierung zwischen binär und einer Basis von Zweierpotenzen ist einfach. Gruppieren Sie einfach die Bits in der von der Zielbasis angegebenen Größe und verwenden Sie dann die entsprechende Ziffer.

Base 8, octal, war für viele frühe Computer beliebt, weshalb Unix einen odoctal dump-Befehl hat. Jede Oktalziffer steht für jeweils 3 Bits. Es war jedoch unpraktisch für Maschinen, die auf 8-Bit-Bytes basierten.

Hexadezimal, kurz hexadezimal, Basis 16, entspricht 4 Bits pro Ziffer. Diese Darstellung wird heutzutage viel häufiger verwendet.

angebracht
quelle
3

Dies bezieht sich darauf, wie Computer Informationen speichern.

Auf der Basisebene verwenden Computer 0und 1zur Darstellung von Daten diese Bits. Acht zusammen gruppierte Bits sind ein Byte. Hexadezimal ist die Basis 16, dh sie hat 16 Zeichen ( 0-9, A-F). Zum Speichern eines Zeichens werden 8 Bits oder 1 Byte benötigt.

Eine Hexadezimalzahl 13( 19in Dezimalzahl) ist also dieselbe wie 0001 0011in Binärzahl. Hex ist leichter zu lesen als binär.

Burgi
quelle
2

Die frühesten mir bekannten Binäreditoren waren ebenfalls Disassembler. Das heißt, die Bearbeitungsfunktion war ein Nebenprodukt beim Zerlegen und Patchen einer ausführbaren Binärdatei.

Ein gutes Beispiel für eine solche Anwendung ist Hiew.

Assemblierter Code (Assembler-Anweisungen) wird häufig als hexadezimale Zeichenfolge dargestellt. Ich denke, hier entsteht moderne Verwirrung. Die Leute wissen einfach nicht, womit sie es zu tun haben.

AnrDaemon
quelle
2

Jede kompilierte, ausführbare Datei (wie z. B. somefile.exe unter Windows) wird manchmal als "binär" bezeichnet, da sie in Code auf Maschinenebene kompiliert wurde, der auf der vom Prozessor direkt auszuführenden binären Ebene korrekt ist.

Sie bearbeiten also eine Binärdatei. Es wird nur in hex angezeigt, da hex für Menschen nützlich ist.

Mike Gillis
quelle
Ja, aber viele Datendateien sind auch binär. Sie sparen Platz und Übersetzungsaufwand, wenn sie von der entsprechenden Anwendung gelesen werden. Auch Textdateien werden häufig verschlüsselt oder komprimiert, sodass sie Binärdateien sind.
Joe
1

Ich werde Ihre Fragen buchstäblich beantworten.

Zunächst ein bisschen Klarheit. Sie meinen natürlich einen hexadezimalen Editor. Hex bedeutet 6 und decimal bedeutet 10 , so hexadezimale bedeutet 16 . Bi bedeutet 2 . Wie Sie bereits sagten, sind dies zwei verschiedene Basen, Basis 16 und Basis 2, was bedeutet, dass zur Definition einer Hexadezimalzahl 16 Platzhalterelemente und zur Definition einer Binärzahl nur 2 Elemente erforderlich sind.

Du hast das gesagt,

If you actually search for "binary editor" on Google, you get hex editors.

Und jetzt zu deinen Fragen,

Why is that? 

Dies ist der wörtliche Teil. Google gibt das zurück, was die meisten Leute als zufriedenstellende Ergebnisse ihrer Suche empfanden. Ihre maschinellen Lernalgorithmen verknüpfen die Zeichenfolgen "hexadezimal" und "hex" mit "binär" im Kontext der Zeichenfolge "Editor". Da die meisten Benutzer mit "hex" "editor" zufrieden waren, nachdem sie nach "binary" "editor" gesucht hatten, erhalten wir genau das. Es hat sonst keine Bedeutung.

What is the connection?

Auch hier gibt es keine, da Google keine Bedeutung zurückgibt. Google kennt den Unterschied zwischen binär und hexadezimal nicht. Es kann nur tabellarisch dargelegt werden, wie Benutzer ihre Suchmaschine verwenden.

Wenn Sie nach der realen Verbindung zwischen Hexadezimal und Binär gefragt haben und dann zu meiner obigen Erläuterung zurückkehren, codiert ein Hexadezimalelement 16 Möglichkeiten oder 4 Bits, aber ein Binärelement codiert 2 Möglichkeiten oder 1 Bit. Um die 8 Informationsbits in einem Byte zu codieren, benötigen wir 2 hexadezimale Elemente oder 8 binäre Elemente. Sie können also sehen, dass Binär- oder Hexadezimal-Editoren synonym verwendet werden können, da sie dieselben Daten nur in verschiedenen Ansichten darstellen.

r3mnant
quelle
1

Sie werden "binär" genannt, weil Sie damit einzelne Bits ändern können.

Die Benutzeroberfläche arbeitet normalerweise in hexadezimaler Form, da dies praktischer ist - z. B. ffffe0007d13e650 weniger Platz auf dem Bildschirm als1111111111111111111000000000000001111101000100111110011001010000 . (Das ist eine tatsächliche Adresse aus einem Debugging-Problem, kein erfundenes Beispiel.) Es ist auch einfacher, Dinge wie ASCII- oder Unicode-Zeichen im Hex-Code zu "sehen".

Aber die meisten von ihnen werden Ihnen Binärbits anzeigen, wenn Sie das wirklich wollen.

(Warum fahren wir auf dem Parkweg und parken auf der Einfahrt? Es sind nur Worte. Englisch ist oft seltsam.)

Jamie Hanrahan
quelle