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.
binary-files
hexadecimal
hex-editor
Joseph A.
la source
la source
Réponses:
Un éditeur binaire édite un fichier en tant que fichier binaire .
Un éditeur hexadécimal est un type d’ éditeur binaire dans lequel les données sont représentées sous forme hexadécimale .
la source
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.
la source
Affichage de l'éditeur binaire (en binaire)
Affichage de l'éditeur binaire (en hexadécimal)
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.
la source
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?
Ou
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.
la source
Selon plusieurs conventions de langage de programmation et de système d'exploitation, il existe deux types de fichiers:
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 .
Il se considère à juste titre comme un éditeur binaire et un éditeur hexadécimal:
Il y a même une option pour ne pas afficher les données en hexadécimal mais seulement le texte
la source
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.
la source
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
od
commande 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.
la source
Cela fait référence à la façon dont les ordinateurs stockent les informations.
Au niveau de base, les ordinateurs utilisent
0
et1
repré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
(19
en décimal) est le même qu'en0001 0011
binaire. Il est plus facile de lire hex que binaire.la source
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.
la source
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.
la source
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,
Et maintenant pour vos questions,
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.
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.
la source
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 que1111111111111111111000000000000001111101000100111110011001010000
. (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.)
la source