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

84

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 dire que les éditeurs hexadécimaux sont des éditeurs binaires. Si vous recherchez "éditeur binaire" sur Google, vous obtenez des éditeurs hexadécimaux.

Joseph A.
la source
3
Hex est une représentation assez lisible des données binaires.
Salman A

Réponses:

188

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

Fichier binaire - Wikipedia

Un fichier binaire est un fichier informatique qui n'est pas un fichier texte. Le terme "fichier binaire" est souvent utilisé comme un terme signifiant "fichier non-texte" [et] est généralement considéré comme une séquence d'octets. ... Les fichiers binaires contiennent généralement des octets destinés à être interprétés autrement que comme des caractères de texte.

Un éditeur hexadécimal est un type d’ éditeur binaire dans lequel les données sont représentées sous forme hexadécimale .

Éditeur hexadécimal - Wikipedia

Un éditeur hexadécimal (ou un éditeur de fichier binaire ou un éditeur d'octets ) est un type de programme informatique permettant 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 pour base 16.

Steven
la source
85

La terminologie est difficile. Différentes personnes portent toutes sortes de noms différents.

Dans ce cas, il apparaît que l' hex dans "éditeur hexadécimal" fait référence à la représentation classique lisible par l'homme de la valeur de chaque octet, alors que le binaire dans "éditeur binaire" fait référence à la notion que vous éditez effectivement le fichier au niveau de l'octet couche (et les ordinateurs stockent les octets en binaire), sans tenir compte du codage de texte de niveau supérieur, etc. Rappelez-vous que les fichiers qui ne sont pas facilement représentables sous forme de texte de niveau supérieur sont appelés "fichiers binaires" ou "fichiers binaires", pour la même raison.

Ni l'un ni l'autre n'est techniquement incorrect; ils viennent juste au problème de nommage sous des angles différents. Sur une note personnelle, cependant, j'aurais tendance à penser que "l'éditeur binaire" est globalement source de confusion.

Courses de légèreté en orbite
la source
58

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 gérer les octets en binaire, mais comme vous pouvez le constater, la base 2 est trop petite pour donner des chiffres compacts.

Binaire comme brut, pas de base deux

De manière générale, alors " binaire " dans l' éditeur binaire ne fait pas référence à la base deux, il s'agit en fait de l'antonyme de " éditeur de texte ".
La différence étant que les éditeurs de texte sont conçus pour afficher du texte. Par conséquent, les caractères non imprimables, les nouvelles lignes, les caractères de contrôle, les unités de code utf-8 non valides, etc. ne doivent pas être manipulés en toute sécurité.
Le simple fait d'ouvrir et de sauvegarder immédiatement un fichier peut le modifier (en raison des conversions internes de l'éditeur, des échecs).

Les éditeurs binaires, dans l’autre sens, n’essayez pas de donner une sémantique aux données et de laisser l’utilisateur le traiter en toute sécurité comme un flux d’octets / bits / mots.

Editeurs hexadécimaux

L'éditeur binaire parfait connaissait tous les formats binaires possibles et vous permettait de le modifier, mais puisque chacun peut créer son propre format binaire et qu'ils changent très souvent, il est inutile d'essayer de prendre en charge tous les formats.
La meilleure chose à faire pour un éditeur est de montrer les octets eux-mêmes, et en raison des propriétés déjà discutées de la base 16, les chiffres hexadécimaux sont très pratiques!

De plus, un utilisateur expérimenté peut traduire mentalement bin en hexadécimal au fur et à mesure de sa lecture.
Définir / extraire un octet écrit en hexadécimal ne demande vraiment pas plus d'effort qu'un octet écrit en bin.
Pour être honnête, j'ai trouvé que hex était plus facile à lire que binaire.

Margaret Bloom
la source
1
Bons exemples montrant la différence. En fait, les voir côte à côte rend l'hexagone plus
beau
1
@DrZoo Sauf si vous avez affaire à des champs de bits, dans ce cas, la représentation binaire est beaucoup plus agréable! en.wikipedia.org/wiki/Bit_field .
Misha256
6
misha256: honnêtement, quand je regarde hex - je vois binaire. Je lis "f" mais mon cerveau dit immédiatement "1111". C'est comme regarder la matrice sous forme compacte. :)
mercredi
4
+1 pour avoir souligné "Binaire brut, pas base deux"
Kelvin
5
@tdrury bon point, je suppose qu'après un certain temps, vous commencez juste à "voir" ce que vous devez voir, quelle que soit la façon dont il est exprimé. Haha, ouais, Matrix! Cela me rappelle un gars avec qui je suis allé à l’école qui codait joliment le langage machine en hexa ou décimal et pouvait convertir librement entre les deux. Il connaissait tous les codes d'opération par cœur et voyait des champs de bits et d'autres structures de données compactes comme s'il s'agissait de sa langue maternelle. C'étaient les 64 jours du Commodore, mais encore un talent impressionnant.
Misha256
15

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

Sommaire:

Un éditeur hexadécimal permet d’é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 l'édition du contenu des données brutes d'un fichier, à la place des autres programmes qui tentent d'interpréter les données.

  • Hex Editors, également appelés Editeurs binaires ou Editeurs d'octets.

  • 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 entendu, les nombres et les octets binaires sous-jacents changeront si le fichier est enregistré).

Pourquoi modifions-nous l'utilisation binaire en hexadécimal?

Il est plus facile de visualiser ou de modifier / modifier directement des 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 hexadécimal.

  • Historiquement, les ordinateurs étaient programmés en langage assembleur, où le code était écrit à l'aide d'instructions de processeur et de méta-instructions (connues sous le nom de directives, pseudo-instructions et pseudo-ops), 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 à l'aide d'un éditeur affichant le programme au format hexadécimal plutôt que binaire.

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

    Par exemple, quelle paire de numéros 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, qui correspond à 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 représentées plus commodément par deux chiffres hexadécimaux compris entre 00 et FF.

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

DavidPostill
la source
3
Notez également que, bien que la base 64 puisse sembler encore plus facile à mémoriser, nous nous en tenons à Hex car elle a la belle propriété de mapper 2 caractères ⇒ 1 octet.
PythonNut
9

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

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

Les éditeurs de texte peuvent ouvrir des fichiers texte tandis que les éditeurs binaires ne sont soumis à aucune restriction quant au type de fichier qu’ils traitent.

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

Un éditeur binaire populaire s'appelle HexEdit .

entrez la description de l'image ici

Il se considère à juste titre comme un éditeur binaire et un éditeur hexadécimal:

entrez la description de l'image ici

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

entrez la description de l'image ici

jlliagre
la source
5

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

Bien sûr, il est possible d’éditer des bits individuels de données, mais pas souvent. De toute façon, les opérations courantes au niveau des bits, telles que le réglage du bit 7, sont faciles à appliquer en mode hexadécimal (1000 0000 base2 = 80 base16) . Ainsi, si une valeur hexadécimale est inférieure à 80 base2, le bit 7 est effacé et l’ajout de 8 base16 le définira.

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

  • Les valeurs hexadécimales sont plus faciles à reconnaître lors de l'analyse visuelle de valeurs connues. Par exemple, 20 base16 = 32 qui est un espace ASCII, mais la même valeur 0010 0000 base2 n’est pas aussi facile à reconnaître en tant que telle parmi un flot d’autres valeurs vidées.

  • Les anciens systèmes sur lesquels vous aviez réellement besoin de l'utiliser régulièrement pouvaient ne pas disposer de beaucoup d'espace à l'écran (40 colonnes, par exemple). Le moniteur ROM Apple IIe est un excellent exemple, il peut vider la mémoire au format hexadécimal vers la vidéo intégrée à 40 colonnes, et le fait d'étendre les valeurs au format binaire sur un écran 80x24 vous permettra de perdre rapidement de la place. Pour ces anciens systèmes, il est également plus facile d'écrire des routines pour convertir les valeurs ASCII entrées en valeurs correctes. Important où 4K de RAM était considéré comme une grande quantité de mémoire et que les systèmes n’avaient peut-être pas autant de ROM.

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

LawrenceC
la source
5

Lorsque les gens utilisent un hex, ils pensent généralement en binaire et l'utilisent comme une notation abrégée.

Seize est une puissance de 2. Huit est également 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 d'une puissance de deux est facile. Regroupez simplement les bits dans la taille indiquée par la base cible, puis utilisez le chiffre correspondant.

La base 8, octale, était populaire pour de nombreux ordinateurs anciens, raison pour laquelle Unix a une odcommande octale de vidage. Chaque chiffre octal représente 3 bits à la fois. Mais cela n’était pas pratique pour les machines basées sur des octets de 8 bits.

Hexadécimal, hex abrégé, base 16, représente 4 bits par chiffre. Cette représentation est beaucoup plus utilisée de nos jours.

infixé
la source
3

Cela fait référence à la façon dont les ordinateurs stockent les informations.

Au niveau de base, les ordinateurs utilisent 0et 1représentent les données, ils sont appelés bits. Huit bits regroupés constituent un octet. La valeur hexadécimale est la base 16, ce qui signifie qu’elle comporte 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( 19en décimal) est le même qu'en 0001 0011binaire. Il est plus facile de lire hex que binaire.

Burgi
la source
2

Les premiers éditeurs binaires que je connais étaient aussi des désassembleurs. Cela signifie que la capacité d’édition est un sous-produit du désassemblage et de la correction d’un fichier binaire exécutable.

Hiew est un bon exemple d'application.

Le code assemblé (instructions d'assembleur) est souvent représenté sous forme de chaînes hexadécimales. Je pense que c'est là que la confusion moderne se pose. Les gens ne savent tout simplement pas à quoi ils ont affaire.

AnrDaemon
la source
2

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

Donc, vous éditez un binaire. Il arrive juste d'être affiché en hex car hex est utile pour les humains.

Mike Gillis
la source
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. En outre, même les fichiers texte sont souvent cryptés ou compressés, ce qui en fait des fichiers binaires.
Joe
1

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. Hex signifie 6 et décimal signifie 10 , donc hexadécimal signifie 16 . Bi signifie 2 . Comme vous l'avez dit, il s'agit de deux bases différentes, la base 16 et la base 2, ce qui signifie qu'il faut 16 éléments fictifs 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? 

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

What is the connection?

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

Si vous demandiez la connexion réelle entre hexadécimal et binaire, pour revenir à la clarification ci-dessus, un élément hexadécimal code pour 16 possibilités ou 4 bits, mais un élément binaire code pour 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 dans des vues différentes.

r3mnant
la source
1

Ils sont appelés "binaires" car ils vous permettent de modifier des bits individuels.

L'interface utilisateur travaille habituellement en hexadécimal par défaut , car il est plus pratique - par exemple , ffffe0007d13e650 prend moins de place sur l'écran que 1111111111111111111000000000000001111101000100111110011001010000. (C'est une adresse réelle provenant d'un problème de débogage, pas un exemple inventé.) Il est également plus facile de "voir" des éléments tels que des caractères ascii ou Unicode dans le code hexadécimal.

Mais la plupart d'entre eux passeront à vous montrer des bits binaires si vous le voulez vraiment.

(Pourquoi conduisons-nous sur la promenade mais garons-nous dans l'allée? Ce ne sont que des mots. L'anglais est souvent étrange.)

Jamie Hanrahan
la source