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.
binary-files
hexadecimal
hex-editor
Joseph A.
quelle
quelle
Antworten:
Ein Binäreditor bearbeitet eine Datei als Binärdatei .
Ein Hex-Editor ist eine Art Binär-Editor, in dem die Daten als Hexadezimalzahl dargestellt werden .
quelle
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.
quelle
Anzeige des Binäreditors (binär)
Binäreditor-Anzeige (hexadezimal)
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.
quelle
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?
Oder
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.
quelle
Je nach Programmiersprache und Betriebssystemkonvention gibt es zwei Arten von Dateien:
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 .
Es versteht sich zu Recht sowohl als Binär-Editor als auch als Hex-Editor:
Es gibt sogar die Möglichkeit, die Daten nicht in hexadezimaler Form anzuzeigen, sondern nur den Text
quelle
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.
quelle
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
od
octal 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.
quelle
Dies bezieht sich darauf, wie Computer Informationen speichern.
Auf der Basisebene verwenden Computer
0
und1
zur 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
(19
in Dezimalzahl) ist also dieselbe wie0001 0011
in Binärzahl. Hex ist leichter zu lesen als binär.quelle
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.
quelle
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.
quelle
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,
Und jetzt zu deinen Fragen,
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.
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.
quelle
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.)
quelle