Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Код

Что такое бинарный файл?

Без стека Время чтения статьи ~6 минут
Что такое бинарный файл? главное изображение

Бинарный файл — это набор данных, закодированных в биты виде нулей и единиц. Эти биты собираются в байты, а уже из них складывается содержимое файла, который может быть представлен в виде текста, изображения, музыки, видео или даже исполняемой программы. Однако такой файл не получится просто так открыть и прочитать. В текстовом редакторе он покажет только хаотичный набор символов. Чтобы разобраться в его содержимом, нужны специальные инструменты и понимание структуры файла.

Познакомьтесь с основами веб-разработки

Записаться на бесплатный курс

Из чего состоит бинарный файл?

Бинарный файл — это формат хранения данных, которые собраны в байты (каждый байт — это 8 бит). Далее байты складываются в более сложные структуры в зависимости от того, что хранится в файле. Рассмотрим основные составляющие бинарного файла.

1. Заголовок (Header)

Содержит служебную информацию — магическую сигнатуру. Это уникальная последовательность байтов в начале файла, которая позволяет определить его тип. Она служит своего рода «отпечатком пальцев» и используется операционными системами и программами для понимания, как с файлом работать. Пример сигнатуры:

  • формат файла (JPEG, MP3, EXE и т. д.);
  • размеры изображения, частота звука или продолжительность видео;
  • ссылки на другие части файла, которые понадобятся программе для работы с ним.

Так, если в изображении заголовок содержит текст 89 50 4E 47, — эта магическая сигнатура указывает, что это файл PNG.

2. Основные данные (Payload)

В этой части файла хранятся закодированные данные:

  • в изображении — информация о цветах пикселей;
  • в аудиофайле — данные о частотах звука;
  • в видео — последовательность закодированных кадров плюс звук;
  • в программе — инструкции для процессора.

Данные обычно сжаты или закодированы для экономии места. Например, в формате .mp3 используется алгоритм сжатия, который уменьшить размер аудиофайла без заметной потери качества.

3. Метаданные

Некоторые бинарные файлы включают дополнительные данные о себе:

  • В аудиофайле это может быть информация об исполнителе, альбоме, названии трека.
  • В документах — сведения об авторе, версии файла, шрифтах.
  • В изображении — краткое описание иллюстрации.

Метаданные часто отображаются в конце файла или между основными данными и заголовком.

4. Кодовые таблицы или служебные блоки

Некоторые файлы содержат специальные блоки. Например:

  • в исполняемых файлах — таблицы ссылок на внешние библиотеки (DLL);
  • в архивных файлах (ZIP) — список содержимого и контрольные суммы для проверки целостности.

Также интересно: Что такое хостинг?

Чем бинарный файл отличается от текстового?

В отличие от бинарного файла с двоичным форматом, текстовый — это понятный для любого человека файл с информацией в виде символов: букв, цифр и т. д. Ниже представлена сравнительная таблица между бинарными и текстовыми файлами.

Характеристика Бинарный файл Текстовый файл
Содержимое Набор нулей и единиц (битов) Понятный, читаемый текст
Пример форматов .bin, .jpg, .mp3, .exe .txt, .html, .csv, .log
Открытие в текстовом редакторе Покажет странный набор символов Покажет текст, который можно прочитать
Использование Хранение сложных данных (изображения, программы, музыка) Запись заметок, кода, данных в таблицах текстом
Скорость обработки Высокая, так как процессор работает с файлом напрямую Медленная, так как компьютер сначала распаковывает файл, затем обрабатывает его
Размер Бинарные файлы весят меньше, потому что хранятся упакованными Тяжелее бинарных файлов

Как создать бинарный файл на компьютере

В интернете можно найти простой способ, как сделать файл бинарным. Там рекомендуют открыть текстовый редактор, ввести пару символов, а потом сохранить файл, указав расширение бинарного файла, отличное от .txt, например .bin. Но такой вариант неверный. Расширение файла не меняет его внутренний формат — файл все равно будет содержать текстовые данные, а не байтовую информацию.

Правильно так. Для работы с двоичными данными запускаем Python и пишем код.

# Создаем бинарный файл
with open("my_binary_file.bin", "wb") as file:
# Записываем данные в виде байтов
file.write(b"\x48\x65\x6C\x6C\x6F") # Это байты, кодирующие слово "Hello"
file.write(b"\x00\x01\x02\x03\x04") # Еще немного байтов
print("Бинарный файл создан!")

После запуска этого кода файл my_binary_file.bin появится в директории пользователя (например, C:\Users\ТвоеИмя>).

Интенсив DevOps для программистов

Начать учиться

Как посмотреть бинарный файл .bin

Компьютер работает с бинарными данными напрямую. Если пытаться прочитать двоичный код в текстовом редакторе, он выдаст произвольный набор символов, потому что текстовый редактор ожидает текст, а не нули и единицы. Поэтому нужно использовать шестнадцатеричные редакторы (Hex-редакторы).

Hex-редактор показывает содержимое файла на уровне байтов и разрешает его изменение. Название Hex (сокращение от Hexadecimal) связано с тем, что данные в таких редакторах отображаются в шестнадцатеричной системе счисления.

Открыть бинарный файл и отредактировать можно с помощью следующих программ:

  • для Windows: HxD и 010 Editor;
  • для macOS: Hex Fiend;
  • для Linux: GHex или Bless Hex Editor;
  • кросс-платформенные: wxHexEditor.

Если бинарные файлы нужно просто открыть для чтения, сделать это можно следующими инструментами.

1. Эмулятор ISO

Если файл .bin содержит образ диска, например CD/DVD, то используйте программы для работы с дисками:

  • Daemon Tools
  • WinCDEmu
  • UltraISO
  • PowerISO

Эти программы монтируют .bin-файл как виртуальный диск, который можно открыть, как обычный CD/DVD.

2. Архиваторы

Если .bin-файл — это архив, то его можно открыть с помощью архиваторов:

  • WinRAR
  • 7-Zip
  • PeaZip

Они позволяют распаковать содержимое файла, если он был закодирован в виде архива.

Читайте также: Какие типы данных существуют в программировании

3. Прошивальщики

Если .bin — это прошивка для устройства (например, роутера, смартфона, ТВ-приставки), то используйте программу, рекомендованную производителем устройства. Например:

  • Для смартфонов — программы вроде Odin или SP Flash Tool.

4. Лаунчеры

Если .bin — это игровой файл, например от PlayStation или Sega, то используйте эмуляторы:

  • PCSX2 (PlayStation 2)
  • RetroArch
  • ePSXe (PlayStation 1)

.bin-файлы здесь работают вместе с .cue-файлами, которые содержат дополнительную информацию о структуре диска.

Заключение

Бинарный файл — это основа, которую необходимо изучить всем начинающим программистам. С их помощью программисты могут хранить и передавать сложные структуры данных, читать и записывать большие объемы информации, сохранять состояние объекта и передавать его, а также выполнять другие задачи. Еще больше основ программирования можно найти в каталоге курсов Хекслет. Там представлены полноценные программы для освоения новой профессии за 10 месяцев и краткие курсы. Некоторые доступны бесплатно.

Аватар пользователя Валерия Белякова
Валерия Белякова около 22 часов назад
0
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря