Шестнадцатеричный и двоичный - две разные базы. Hex, в моем понимании, просто более простая в использовании и более удобная версия бинарного файла.
Тем не менее, я часто слышу, что шестнадцатеричные редакторы являются двоичными редакторами. Если вы ищете «бинарный редактор» в Google, вы получите шестнадцатеричные редакторы.
binary-files
hexadecimal
hex-editor
Джозеф А.
источник
источник
Ответы:
Двоичный редактор редактирует файл в виде двоичного файла .
Шестнадцатеричный редактор представляет собой тип двоичного редактора , в котором данные представлены в виде шестнадцатеричной .
источник
Терминология сложна. У разных людей есть разные названия вещей.
В этом случае кажется, что шестнадцатеричное в «hex Editor» относится к общепринятому человеку понятному представлению значения каждого байта, тогда как двоичное в «двоичном редакторе» относится к понятию, что вы действительно редактируете файл в байте. слой (и компьютеры хранят байты в двоичном виде), без учета более высокого уровня кодирования текста и тому подобного. Напомним, что файлы, которые нельзя легко представить в текстовой форме более высокого уровня, называются «двоичными файлами» или «двоичными файлами» по той же причине.
Ни то, ни другое технически неверно; они просто приходят к проблеме именования с разных сторон. Что касается личной заметки, я бы согласился с тем, что «двоичный редактор» сбивает с толку.
источник
Двоичный редактор отображения (в двоичном формате)
Отображение двоичного редактора (в шестнадцатеричном формате)
Это правда, что двоичный редактор должен позволять вам обрабатывать байты в двоичном формате, но, как вы можете видеть, база 2 слишком мала, чтобы давать компактные цифры.
Бинарный как сырье, а не база два
Вообще говоря, тогда « бинарный » в бинарном редакторе не относится к основанию два, это фактически антоним « текстового редактора ».
Разница заключается в том, что текстовые редакторы предназначены для отображения текста, поэтому необязательно безопасно обрабатывать непечатаемые символы, новые строки, контрольные символы, недопустимые единицы кода utf-8 и т. Д.
Сам процесс открытия файла и его немедленного сохранения может изменить его (из-за внутренних преобразований редактора, сбоев).
Бинарные редакторы, с другой стороны, не пытаются придавать данным какую-либо семантику и позволяют пользователю безопасно обрабатывать их как поток байтов / битов / слов.
Шестнадцатеричные редакторы
Идеальный бинарный редактор знал бы каждый возможный двоичный формат и позволял бы вам редактировать его, но поскольку каждый может создать свой собственный двоичный формат и поскольку они очень часто меняются, бесполезно пытаться поддерживать все форматы.
Лучшее, что может сделать редактор, - это показать сами байты, и из-за уже обсужденных свойств шестнадцатеричных чисел с основанием 16 очень удобно!
Также опытный пользователь может мысленно перевести bin в hex, когда они его читают.
Установка / извлечение битов из байта, записанного в шестнадцатеричном формате, на самом деле требует не больше усилий, чем байт, записанный в бине.
Честно говоря, я нашел шестнадцатеричный код легче, чем двоичный.
источник
Почему шестнадцатеричные редакторы называются бинарными редакторами?
Резюме:
Шестнадцатеричный редактор используется для непосредственного редактирования двоичного файла, отображая двоичное содержимое в шестнадцатеричном формате и позволяя изменять эти шестнадцатеричные числа.
Примечания:
Шестнадцатеричные редакторы позволяют редактировать содержимое необработанных данных файла вместо других программ, которые пытаются интерпретировать данные.
Шестнадцатеричные редакторы, также называемые двоичными редакторами или байтовыми редакторами.
Называть их двоичными редакторами или байтовыми редакторами не совсем правильно, так как редакторы меняют шестнадцатеричные числа, а не двоичные числа или байты (конечно, базовые двоичные числа и байты изменятся, если файл будет сохранен)
Почему мы редактируем двоичное использование шестнадцатеричного?
Проще непосредственно просматривать или редактировать / изменять двоичные файлы, отображая данные в шестнадцатеричной форме и изменяя шестнадцатеричные значения.
Одним из удобных способов представления двоичных чисел является использование шестнадцатеричного числа.
Исторически компьютеры были запрограммированы на ассемблере, где код был написан с использованием инструкций процессора и мета-утверждений (известных как директивы, псевдоинструкции и псевдооперации), комментариев и данных.
Код переводится в двоичный файл с использованием ассемблера. Затем двоичный код может быть загружен в процесс и выполнен.
Без исходного кода проще изменить программу напрямую, используя редактор, который отображает программу в шестнадцатеричном, а не двоичном формате.
Двоичный код легче читается людьми при преобразовании в шестнадцатеричный.
Например, какую пару чисел легче запомнить или прочитать кому-то еще?
Или же
Каждая шестнадцатеричная цифра представляет четыре двоичные цифры (биты). Одна шестнадцатеричная цифра представляет собой полубайт, равный половине октета или байта (8 битов).
Например, значения байтов могут быть в диапазоне от 0 до 255 (десятичные), но могут быть более удобно представлены в виде двух шестнадцатеричных цифр в диапазоне от 00 до FF.
Шестнадцатеричный также обычно используется для представления адресов памяти компьютера.
источник
Согласно нескольким соглашениям о языке программирования и операционной системе, существует два вида файлов:
Текстовые редакторы могут открывать текстовые файлы, в то время как бинарные редакторы не имеют ограничений по типу файлов, которые они обрабатывают.
Бинарные редакторы часто представляют и позволяют вводить данные в шестнадцатеричном виде - это просто удобство (они часто отображают и позволяют заменять символы ascii), только отображение данных в чистом двоичном коде сделает данные менее читабельными.
Популярный бинарный редактор называется HexEdit .
Он справедливо считает себя двоичным и шестнадцатеричным редактором:
Существует даже опция не отображать данные в шестнадцатеричном виде, а только текст
источник
Файлы на подавляющем большинстве, если вообще на всех компьютерах, сегодня представляют собой 8-битные байты . Обычно это та абстракция, с которой вы работаете при непосредственном редактировании файла.
Конечно, есть возможность на самом деле редактировать отдельные биты данных, но не часто. Обычные операции на уровне битов, такие как установка бита 7, в любом случае легко выполнить с шестнадцатеричным - 1000 0000 base2 = 80 base16 , поэтому, если шестнадцатеричное значение меньше 80 base2, бит 7 сбрасывается, и добавление 8 base16 установит его.
Другие причины, по которым гекс более тесно связан с этим видом деятельности:
Шестнадцатеричные значения легче распознать при визуальном сканировании известных значений. Например, 20 base16 = 32, что является пробелом ASCII, но такое же значение 0010 0000 base2 не так легко распознать как таковое среди потока других сброшенных значений.
Старые системы, где вам действительно нужно было использовать это регулярно, могли иметь ограниченное пространство экрана (например, 40 столбцов). Отличным примером является монитор ПЗУ Apple IIe, который может выгружать память в шестнадцатеричном формате для встроенного видео с 40 колонками, а расширение значений в двоичном формате на экране 80x24 быстро выгонит вас из комнаты. Для этих старых систем также проще написать подпрограммы для преобразования введенного ASCII обратно в правильные значения. Важно, чтобы 4 КБ ОЗУ считалось большим объемом памяти, а системы могли иметь только столько ПЗУ.
Слово «шестнадцатеричный» звучит лучше, короче и его легче набирать.
источник
Когда люди используют гекс, они обычно думают в двоичном формате и используют гекс в качестве сокращенной записи.
Шестнадцать - это степень 2. Восемь также является степенью двойки. Таким образом, 16 и 8 были использованы для сокращенного обозначения двоичного файла. Ручное преобразование между двоичным и основанием некоторой степени двух легко. Просто сгруппируйте биты вместе в размере, указанном целевой базой, а затем используйте соответствующую цифру.
Base 8, восьмеричная, была популярна для многих ранних компьютеров, поэтому Unix имеет
od
восьмеричную команду dump. Каждая восьмеричная цифра представляет 3 бита за раз. Но это было неудобно для машин на основе 8-битных байтов.Шестнадцатеричный, шестнадцатеричный, для основания, 16, представляет 4 бита на цифру. Это гораздо более распространенное представление в наши дни.
источник
Это относится к тому, как компьютеры хранят информацию.
На базовом уровне компьютеры используют
0
и1
для представления данных, они называются битами. Восемь битов, сгруппированных вместе - это байт. Шестнадцатеричное - это основание 16, что означает, что оно имеет 16 символов (0-9
,A-F
). Для хранения символа требуется 8 бит или 1 байт.Таким образом, шестнадцатеричное число
13
(19
в десятичном виде) такое же, как0001 0011
в двоичном. Легче читать шестнадцатеричный код, чем двоичный.источник
Самые ранние двоичные редакторы, которых я знаю, также были дизассемблерами. Это означает, что возможность редактирования была побочным продуктом при разборке и исправлении исполняемого двоичного файла.
Хорошим примером такого приложения является Hiew.
Собранный код (инструкции ассемблера) часто представляется в виде шестнадцатеричных строк. Я думаю, что здесь возникает современная путаница. Люди просто не знают, с чем имеют дело.
источник
Любой скомпилированный исполняемый файл (например, somefile.exe, например, в Windows) иногда называют «двоичным», поскольку он был скомпилирован в код машинного уровня, который корректен на двоичном уровне для непосредственного выполнения процессором.
Итак, вы редактируете двоичный файл. Просто это происходит в шестнадцатеричном формате, потому что он полезен для людей.
источник
Я собираюсь ответить на ваши вопросы буквально.
Сначала немного уточнений. Вы имеете в виду, конечно, шестнадцатеричный редактор. Шестнадцатеричное означает 6, а десятичное означает 10 , поэтому шестнадцатеричное означает 16 . Би означает 2 . Как вы сказали, это две разные базы, база 16 и база 2, что означает, что для определения шестнадцатеричного числа требуется 16 элементов-заполнителей и всего 2 элемента для определения двоичного числа.
Вы сказали, что,
А теперь на ваши вопросы,
Это буквальная часть. Google возвращает то, что большинство людей считают удовлетворительными результатами своих поисков. Их алгоритмы машинного обучения связывают строки «шестнадцатеричный» и «шестнадцатеричный» с «двоичным» в контексте строки «редактор». Так как большинство пользователей были удовлетворены «hex» «редактором» после того, как они искали «бинарный» «редактор», это то, что мы получаем. Это не имеет никакого значения в противном случае.
Буквально снова, нет, так как Google не возвращает никакого смысла. Google не знает разницы между двоичным и шестнадцатеричным, он может только сводить в таблицу, как люди используют свою поисковую систему.
Если вы запрашивали реальную связь между шестнадцатеричным и двоичным, то, возвращаясь к моему пояснению выше, один шестнадцатеричный элемент кодирует 16 возможностей или 4 бита, а двоичный элемент кодирует 2 возможности или 1 бит. Чтобы закодировать 8 бит информации в байте, нам нужно 2 шестнадцатеричных элемента или 8 двоичных элементов. Таким образом, вы можете видеть, что двоичные или шестнадцатеричные редакторы могут использоваться взаимозаменяемо, поскольку они представляют одни и те же данные, только в разных представлениях.
источник
Их называют «двоичными», потому что они позволяют вам изменять отдельные биты.
Пользовательский интерфейс обычно работает в шестнадцатеричном формате по умолчанию, потому что это более удобно - например,
ffffe0007d13e650
занимает меньше места на экране, чем1111111111111111111000000000000001111101000100111110011001010000
. (Это реальный адрес от проблемы отладки, а не выдуманный пример.) В шестнадцатеричном коде также легче «видеть» такие вещи, как символы ascii или Unicode.Но большинство из них переключатся на отображение двоичных битов, если вы действительно этого хотите.
(Почему мы едем по бульвару, но паркуемся по дороге? Это просто слова. Английский часто странный.)
источник