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