Hexter

Що таке шістнадцятковий редактор (і коли він вам справді потрібен)

Хтось сказав вам «перевір це в шістнадцятковому редакторі», або ви шукали шістнадцятковий переглядач і опинилися тут, не будучи до кінця впевнені, що це таке. Це нормально. Шістнадцятковий редактор це програма, яка показує вам сирий вміст файлу, байт за байтом, замість того, щоб намагатися витлумачити його як документ, зображення чи таблицю. Це найближче, що ви можете отримати до перегляду точно того, що зберігається на диску.

Чому саме шістнадцятковий

Файл, будь-який файл, це просто послідовність байтів, і кожен байт це число від 0 до 255. Ви могли б показувати ці числа в десятковому вигляді, але від 0 до 255 займає до трьох цифр і не вишиковується охайно. Ви могли б показувати їх у двійковому вигляді, але один байт це вісім цифр з одиниць і нулів, що важко оглядати очима. Шістнадцятковий (основа 16, з цифрами 0-9 і літерами A-F) це компроміс: кожен байт уміщається точно у два символи, від 00 до FF, тож рядок байтів вишиковується в охайну, легку для огляду сітку. Ось уся причина, чому «шістнадцятковий» це стандарт, а не десятковий чи двійковий. Це вибір заради читабельності, а не технічна вимога.

На що ви насправді дивитеся

Відкрийте будь-який файл у шістнадцятковому редакторі, і ви побачите три речі поруч, для тих самих даних:

Діаграма трьох стовпців шістнадцяткового редактора: стовпець зміщення, що показує позицію у файлі, шістнадцяткова сітка, що показує кожен байт як два шістнадцяткові символи, і текстовий стовпець, що показує ті самі байти, витлумачені як ASCII.
Ті самі байти, показані трьома способами: де вони, що вони і як вони виглядали б як текст.
  • Зміщення: наскільки глибоко у файлі ви перебуваєте, зазвичай показане теж у шістнадцятковому вигляді, тож ви можете потім повернутися до конкретної позиції.
  • Шістнадцяткові байти: справжні дані, два символи на байт, згруповані в рядки (зазвичай по 16 байтів на рядок).
  • Текстовий перегляд (ASCII): ті самі байти, переосмислені як символи, для тієї частини файлу, що виявляється читабельним текстом. Нетекстові байти зазвичай показуються як крапка-заповнювач.

Цей третій стовпець це причина, чому шляхи до файлів, підписи й рядки версій часто видно навіть у файлах, що переважно двійкові: будь-який вбудований текст з’являється в цьому стовпці, хоча файл загалом не є текстовим.

Коли він вам справді потрібен

Більшість людей проживає все життя, жодного разу не відкривши шістнадцятковий редактор, і це цілком нормально. Ситуації, де це справді правильний інструмент, специфічні:

  • Розширення файлу не відповідає його справжньому вмісту. Хтось перейменував .zip на .doc, або ви не впевнені, що файл .db справді база даних. Перші кілька байтів більшості форматів це характерна сигнатура (PNG починається з 89 50 4E 47, ZIP з 50 4B), і шістнадцятковий перегляд підтверджує це за секунди.
  • Файл пошкоджено, і ви хочете знати як. Обрізане завантаження, погана передача, перезаписаний заголовок. Перегляд сирих байтів каже вам, чи пошкодження на початку, в кінці чи розкидане.
  • Ви налагоджуєте щось, що читає чи записує двійкові дані, формат файлу збереження, файл конфігурації, мережевий протокол, і вам треба підтвердити точно, які байти виробляються.
  • Ви хочете перевірити конкретне значення, як-от підтвердити, що чотири байти справді представляють розмір файлу, який ви очікуєте, або перевірити позначку часу, не довіряючи інструменту-чорній-скриньці тлумачити його правильно.
  • Цікавість. Чимало людей одного разу відкривають шістнадцятковий редактор просто щоб побачити, як насправді виглядає зсередини знайомий формат файлу. Це цілком легітимна причина.

Якщо жодне з цих не описує того, що ви робите, вам, імовірно, він не потрібен, і це нормально. Це спеціалізований інструмент для специфічного роду запитань.

Що робить шістнадцятковий редактор хорошим, а не просто функціональним

Щойно він вам справді знадобиться, інструменти здебільшого виконують ту саму базову роботу: показують байти, дають прокручувати, дають шукати. Відмінності, що мають значення, стосуються безпеки й ясності, а не сирої кількості можливостей. Hex Fiend це безкоштовний варіант з відкритим кодом, з яким більшість користувачів Mac зрештою залишається за замовчуванням, і він справді потужний, особливо з дуже великими файлами. Hexter обирає вужчий, обережніший підхід: кожен файл відкривається лише для читання, тож перегляд чогось незнайомого не несе жодного ризику, редагування це явний крок з можливістю скасування, а не стан за замовчуванням, а поширені формати файлів (PNG, ZIP, Mach-O, WAV, SQLite) отримують свою структуру, розібрану автоматично, замість того, щоб залишати вас декодувати заголовки вручну.

Який з них вам потрібен, залежить від того, що ви робите. Якщо ви порівнюєте два багатогігабайтні файли байт за байтом, порівняння Hex Fiend створене для такого масштабу. Якщо вам просто треба підтвердити, що це за файл насправді, перевірити жменю байтів або зробити невелику, обережну правку, не хвилюючись про випадкове знищення оригіналу, це та ситуація, для якої створено Hexter.