Ваш шестнадцатеричный редактор выбирает декодировать байты не как ASCII, а как некоторую другую кодировку символов.
Вы правы, что набор символов ASCII имеет 128 кодовых точек, а кодировка символов ASCII кодирует их в отдельные байты в диапазоне от 0 до 127. Поскольку байты в произвольном файле могут варьироваться от 0 до 255, а набор символов ASCIIне используется для текстовых файлов, декодирование, так как ASCII не будет раскрывать столько информации о потенциальном тексте, сколько более вероятная кодировка символов и даст информацию только о половине значений двоичных файлов.
Работа шестнадцатеричного редактора заключается в отображении и разрешении редактирования байтов.Дополнительные презентации и возможность редактирования являются дополнительными функциями.Многие из них представляют текст, некоторые позволяют искать и заменять текст.Некоторые даже работают с другими форматами данных, такими как десятичные целые числа, многобайтовые целые числа, числа с плавающей запятой и т. Д.
Нет текста, кроме закодированного текста.Таким образом, для поддержки текста, шестнадцатеричный редактор - и любая другая программа (включая компиляторы) - должны выбрать или позволить выбрать кодировку символов.Для байтовых значений, которые не могут быть декодированы с использованием этой кодировки, точка или вопросительный знак часто заменяются на текстовом дисплее шестнадцатеричного редактора.
Если вы не нашли, какая кодировка символов используется вашим шестнадцатеричным редактором, вы можете проверить его, создав файл со значениями байтов от 0 до 255, посмотреть, что он отображает, и сопоставить его со многими, многими возможности .Это может быть тот, который ваша операционная система использует для «по умолчанию».В Windows cmd, перейдите chcp
;В терминале Linux зайдите locale
.