Question Pourquoi les éditeurs hexadécimaux sont-ils appelés éditeurs binaires?


Hex et binary sont deux bases différentes. Hex, à mon sens, est simplement une version plus facile à utiliser et plus pratique du binaire.

Cependant, j'entends souvent que les éditeurs hexadécimaux sont des éditeurs binaires. Si vous recherchez "éditeur binaire" sur Google, vous obtenez des éditeurs hexadécimaux.


78
2018-03-22 13:22


origine


Hex est une représentation quelque peu lisible des données binaires. - Salman A


Réponses:


UNE éditeur binaire édite un fichier en tant que fichier binaire.

Fichier binaire - Wikipedia

UNE fichier binaire est un fichier informatique qui n’est pas un fichier texte.   Le terme "fichier binaire" est souvent utilisé comme terme signifiant "fichier non textuel". ... [C'est]   généralement considéré comme une séquence d'octets. ... fichiers binaires   contiennent généralement des octets destinés à être interprétés comme   quelque chose d'autre que des caractères de texte.

UNE éditeur hexadécimal est un type de éditeur binaire dans lequel les données binaires sont représentées dans hexadécimal.

Éditeur Hex - Wikipedia

UNE éditeur hexadécimal (ou éditeur de fichier binaire ou éditeur d'octet) est un type de programme informatique qui permet de manipuler les données binaires fondamentales constituant un fichier informatique. Le nom 'hex' vient de 'hexadécimal': une représentation standard pour les nombres ayant comme base 16.


182
2018-03-22 13:37





La terminologie est difficile. Différentes personnes ont toutes sortes de noms différents pour les choses.

Dans ce cas, il semble que le hexagone dans "éditeur hexadécimal" se réfère à la représentation lisible par l'homme de la valeur de chaque octet, alors que le binaire dans "éditeur binaire", on entend la notion que vous éditez effectivement le fichier au niveau de la couche d'octets (et que les ordinateurs stockent des octets en binaire), sans tenir compte du codage de texte de niveau supérieur, etc. Rappelez-vous que les fichiers difficilement représentables sous forme de texte de niveau supérieur sont appelés "fichiers binaires" ou "binaires", pour la même raison.

Ni est techniquement incorrect; ils viennent juste au problème de nommage sous différents angles. Sur une note personnelle, cependant, j'aurais tendance à accepter que "l'éditeur binaire" prête à confusion.


84
2018-03-22 14:50





Affichage de l'éditeur binaire (en binaire) 

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

Affichage de l'éditeur binaire (en hexadécimal) 

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

Il est vrai qu'un éditeur binaire devrait vous permettre de manipuler des octets en binaire, mais comme vous pouvez le voir, la base 2 est trop petite pour donner des chiffres compacts.

Binaire en tant que brut, pas en base deux

De manière générale, alors "binaire" dans éditeur binaire ne se réfère pas à la base deux, c'est en fait l'antonyme de "éditeur de texte".
La différence étant que les éditeurs de texte sont conçus pour afficher du texte, il n'est donc pas nécessaire de traiter les caractères non imprimables, les nouvelles lignes, les caractères de contrôle, les unités de code utf-8 invalides, etc.
Le simple fait d'ouvrir un fichier et de l'enregistrer immédiatement peut le modifier (en raison des conversions internes de l'éditeur, des échecs).

Les éditeurs binaires, par contre, n'essaient pas de donner une sémantique aux données et permettent à l'utilisateur de le manipuler en toute sécurité sous la forme d'un flux d'octets / bits / mots.

Éditeurs hexadécimaux

L'éditeur binaire parfait connaîtrait tous les formats binaires possibles et vous permettrait de le modifier, mais puisque tout le monde peut créer son propre format binaire et qu'il change Très souvent, il est inutile d'essayer de prendre en charge tous les formats.
La meilleure chose qu'un éditeur puisse faire est de montrer les octets eux-mêmes et, en raison des propriétés déjà décrites de la base 16, les chiffres hexadécimaux sont très pratiques!

De plus, un utilisateur expérimenté peut traduire mentalement bin en hex lorsqu'il le lit.
Définir / extraire un octet écrit en hexagone ne demande vraiment pas plus d'effort qu'un octet écrit dans bin.
Pour être honnête, j'ai trouvé un hexagone Plus facile que binaire à lire.


54
2018-03-22 17:26



Bons exemples montrant la différence. En fait, les voir côte à côte rend l'hexagone beaucoup plus agréable - DrZoo
@DrZoo Sauf si vous traitez des champs de bits, auquel cas la représentation binaire est beaucoup plus agréable! en.wikipedia.org/wiki/Bit_field. - misha256
misha256: honnêtement, quand je regarde hex - je vois binaire. J'ai lu "f" mais mon cerveau dit immédiatement "1111". C'est comme regarder la matrice sous forme compacte. :) - tdrury
+1 pour mettre l'accent sur "Binaire en tant que brut, pas en base deux" - Kelvin
@tdrury bon point, je suppose qu'après un certain temps, vous commencez juste à "voir" ce que vous devez voir indépendamment de la manière dont il est exprimé. Haha, oui, Matrix! Cela me rappelle un gars que je suis allé à l'école avec qui codé avec bonheur le langage de la machine en hexadécimal ou décimal et qui pouvait se convertir librement entre les deux. Il connaissait tous les codes d'opération par cœur et voyait les champs de bits et autres structures de données compactes comme si c'était sa première langue. Ce sont les Commodore 64 jours que vous pensez (jours beaucoup plus simples), mais toujours un talent impressionnant. - misha256


Pourquoi les éditeurs hexadécimaux sont-ils appelés éditeurs binaires?

Résumé:

Un éditeur hexadécimal est utilisé pour éditer directement un fichier binaire en affichant le contenu binaire au format hexadécimal et en permettant de modifier ces nombres hexadécimaux.

Remarques:

  • Hex Editors permet d'éditer le contenu des données brutes d'un fichier, au lieu d'autres programmes qui tentent d'interpréter les données.

  • Les rédacteurs hexadécimaux sont également appelés éditeurs binaires ou éditeurs de Byte.

  • Les appeler Éditeurs binaires ou Éditeurs d'octets n'est pas vraiment correct car les éditeurs modifient les nombres hexadécimaux et non les nombres binaires ou les octets (bien sûr, les nombres et octets binaires sous-jacents changeront si le fichier est enregistré).

Pourquoi modifions-nous l'hexadécimal à usage binaire?

Il est plus facile d'afficher ou de modifier / modifier directement les fichiers binaires en affichant les données sous forme hexadécimale et en modifiant les valeurs hexadécimales.

  • Un moyen pratique de représenter des nombres binaires consiste à utiliser l'hexadécimal.

  • Historiquement, les ordinateurs étaient programmés en langage d'assemblage, où le code était écrit à l'aide d'instructions de processeur et de méta-déclarations (connues sous le nom de directives, pseudo-instructions et pseudo-opérations), de commentaires et de données.

    • Le code est traduit en binaire à l'aide d'un assembleur. Le code binaire peut ensuite être chargé dans un processus et exécuté.

    • Sans le code source, il est plus facile de modifier le programme directement en utilisant un éditeur qui affiche le programme en hexadécimal plutôt qu'en binaire.

  • Le code binaire est plus facilement lisible par les humains lorsqu'il est converti en hexadécimal.

    Par exemple, quelle paire de numéro est plus facile à mémoriser ou à lire à quelqu'un d'autre?

    10110000 01100001
    

    Ou

    B0 61
    
  • Chaque chiffre hexadécimal représente quatre chiffres binaires (bits). Un chiffre hexadécimal représente un quartet, soit la moitié d'un octet ou d'un octet (8 bits).

    Par exemple, les valeurs en octets peuvent être comprises entre 0 et 255 (décimal), mais peuvent être mieux représentées par deux chiffres hexadécimaux compris entre 00 et FF.

  • Hexadécimal est également couramment utilisé pour représenter les adresses mémoire de l'ordinateur.


13
2018-03-22 15:43



Notez également que, même si Base 64 peut sembler encore plus facile à mémoriser, nous nous en tenons à Hex car il possède la propriété intéressante de mapper 2 caractères ⇒ 1 octet. - PythonNut


Selon plusieurs conventions de langage de programmation et de système d’exploitation, il existe deux types de fichiers:

  • les fichiers texte composés d'une suite de lignes de texte, chaque ligne étant composée d'une suite de caractères imprimables (y compris des caractères de contrôle) et terminée par une fin de ligne
  • fichiers binaires contenant une suite arbitraire d'octets incluant l'octet nul qui est interdit dans un fichier texte.

Les éditeurs de texte peuvent ouvrir des fichiers texte alors que les éditeurs binaires ne limitent pas le type de fichiers qu'ils traitent.

Le fait que les éditeurs binaires représentent et permettent souvent de saisir des données en hexadécimal n'est qu'une commodité (ils affichent souvent et permettent également de remplacer les caractères ascii), seule l'affichage des données en pur binaire rendrait les données moins lisibles.

Un éditeur binaire populaire est nommé HexEdit.

enter image description here

Il se considère à juste titre à la fois éditeur binaire et éditeur hexadécimal:

enter image description here

Il y a même une option pour ne pas afficher les données en hexadécimal mais seulement le texte

enter image description here


8
2018-03-22 16:02





Les fichiers de la grande majorité des ordinateurs, si tous les ordinateurs actuels, sont des fichiers 8 bits octets. C'est généralement l'abstraction avec laquelle on travaille lors de l'édition directe d'un fichier.

Bien entendu, il est possible de modifier des bits de données individuels, mais pas souvent. Les opérations courantes au niveau du bit, comme le bit 7, sont de toute façon faciles à faire avec hex - 1000 0000base2 = 80base16, donc si une valeur hexadécimale est inférieure à 80base2 le bit 7 est clair et ajoute 8base16 va le définir.

Autres raisons pour lesquelles hex est plus fortement associé à ce type d'activité:

  • Les valeurs hexadécimales sont plus faciles à reconnaître lors de la recherche visuelle de valeurs connues. Par exemple, 20base16 = 32 qui est un espace ASCII, mais la même valeur 0010 0000base2 n'est pas si facile à reconnaître comme tel parmi un flot d'autres valeurs sous-évaluées.

  • Les anciens systèmes sur lesquels vous deviez en fait utiliser régulièrement pouvaient avoir un écran limité (par exemple 40 colonnes). Le moniteur Apple IIe ROM est un excellent exemple, il peut vider la mémoire en hexadécimal sur la vidéo intégrée à 40 colonnes, et étendre les valeurs en binaire sur un écran 80x24 vous fera rapidement sortir de la pièce. Pour ces anciens systèmes, il est également plus facile d’écrire des routines pour reconvertir les données ASCII saisies en valeurs correctes. Important où 4 Ko de RAM ont été considérés comme beaucoup de mémoire et les systèmes peuvent avoir seulement autant de ROM.

  • Le mot "hex" sonne mieux, est plus court et est plus facile à taper.


5
2018-03-22 16:12





Quand les gens utilisent des hexagones, ils pensent généralement en binaire et utilisent l'hexagone comme notation abrégée.

Seize est une puissance de 2. Huit est aussi une puissance de deux. Donc, 16 et 8 ont été utilisés pour la notation abrégée de binaire. La conversion manuelle entre binaire et une base de puissance de deux est facile. Il suffit de regrouper les bits dans la taille indiquée par la base cible, puis d'utiliser le chiffre correspondant.

Base 8, octal, était populaire pour de nombreux premiers ordinateurs, ce qui explique pourquoi Unix a un od Commande de vidage octal. Chaque chiffre octal représente 3 bits à la fois. Mais ce n'était pas pratique pour les machines basées sur des octets de 8 bits.

Hexadécimal, hexadécimal pour base courte, base 16, représente 4 bits par chiffre. C'est une représentation beaucoup plus courante de nos jours.


5
2018-03-22 15:15





Cela fait référence à la manière dont les ordinateurs stockent les informations.

Au niveau de base, les ordinateurs utilisent 0 et 1 pour représenter des données, celles-ci sont appelées bits. Huit bits regroupés sont un octet. Hexadécimal est la base 16, ce qui signifie qu’il a 16 caractères (0-9, A-F). Pour stocker un caractère, il faut 8 bits ou 1 octet.

Donc un nombre hexadécimal 13 (19 en décimal) est le même que 0001 0011 en binaire. Il est plus facile de lire des hexagones que des binaires.


3
2018-03-22 13:37





Les premiers éditeurs binaires que je connaisse étaient également des démonteurs. Ce qui signifie que la fonction d'édition était un sous-produit du démontage et de la mise à jour d'un fichier binaire exécutable.

Hiew en est un bon exemple.

Le code assemblé (instructions de l'assembleur) est souvent représenté par des chaînes hexadécimales. Je pense que c'est là que surgit la confusion moderne. Les gens ne savent tout simplement pas ce qu’ils font.


2
2018-03-24 00:28





Tout fichier exécutable compilé (comme somefile.exe, par exemple, sous Windows) est parfois appelé "binaire", car il a été compilé dans un code de niveau machine qui est correct au niveau binaire pour être exécuté directement par le processeur.

Donc, vous éditez un binaire. Cela arrive juste d'être affiché en hexadécimal parce que l'hex est utile pour les humains.


2
2018-03-25 18:13



Oui, mais de nombreux fichiers de données sont également binaires. Ils économisent de l'espace et de la traduction lorsqu'ils sont lus par l'application appropriée. De plus, même les fichiers texte sont souvent chiffrés ou compressés, ce qui en fait des fichiers binaires. - Joe


Je vais répondre à vos questions littéralement.

Tout d'abord, un peu de clarification. Vous voulez dire, bien sûr, un éditeur hexadécimal. Hexagone veux dire 6 et décimal veux dire dix, alors hexadécimal veux dire 16. Bi veux dire 2. Comme vous l'avez dit, ce sont deux bases différentes, la base 16 et la base 2, ce qui signifie qu'il faut 16 éléments d'espace réservé pour définir un nombre hexadécimal et seulement 2 éléments pour définir un nombre binaire.

Vous avez dit que,

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

Et maintenant, pour vos questions,

Why is that? 

C'est la partie littérale. Google renvoie ce que la plupart des gens pensaient être des résultats satisfaisants de leurs recherches. Leurs algorithmes d'apprentissage automatique associent les chaînes "hexadécimales" et "hexadécimales" avec "binaire" dans le contexte de la chaîne "éditeur". Comme la plupart des utilisateurs étaient satisfaits de l'éditeur "hexadécimal" après avoir recherché "éditeur" "binaire", c'est ce que nous obtenons. Cela n'a pas de sens autrement.

What is the connection?

Littéralement encore, il n'y en a pas puisque Google ne renvoie aucune signification. Google ne connaît pas la différence entre binaire et hexadécimal, il ne peut que calculer la manière dont les gens utilisent leur moteur de recherche.

Si vous demandez la connexion réelle entre hexadécimal et binaire, puis revenez à ma précision ci-dessus, un élément hexadécimal code 16 possibilités ou 4 bits, mais un élément binaire code 2 possibilités ou 1 bit. Pour encoder les 8 bits d'information dans un octet, nous avons besoin de 2 éléments hexadécimaux ou de 8 éléments binaires. Ainsi, vous pouvez voir que les éditeurs binaires ou hexadécimaux peuvent être utilisés de manière interchangeable car ils représentent les mêmes données, mais uniquement dans des vues différentes.


2
2018-03-29 01:19