@qovalenko

Чем отличаются форматы файлов?

Немного неловко, но хочется понять ситуацию.
Я занимаюсь программированием достаточно давно, в основном это разработка веб приложений.
Я использую интерпретируемые языки, реже компилирую.
Если взять html, py или js, php ... Тут все понятно - все содержимое описано текстом.
Если взять исполняемый файл и открыть его блокнотом - получим квакозябры, т.к. исполняемый файл - это файл машинного кода нулей и единиц, который в свою очередь мы можем распознать в некоторых редакторах.
А что касается PDF, excel, doc ... они же не исполняемые? А блокнотом открыть не получается ... А при генерации используется подложка xml.
Чем они закодированы? А JPG? и форматы изображений. А видео?
Спасибо!
  • Вопрос задан
  • 335 просмотров
Решения вопроса 2
DevMan
@DevMan
они могут отличаться всем, чем угодно. начиная от внутреннего устройства и заканчивая методами компрессии.
если формат открытый, вы можете открыть спеки и сравнить с другими форматами.
если формат закрытый, реверс-инжиниринг вам в руки.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Возьмём для примера картинку в формате JPEG.
Допустим она в высоту 2 точки, и шириной 100 точек. Состоит из двух горизонтальных линий, каждая высотой в одну точку, и длинной 100 точек. Верхняя белого цвета (RGB: 255,255,255), нижняя красного (RGB: 255,0,0).

Как в текстовом формате описать эту картинку? 100 раз повторив слово "белый", а потом 100 раз слово "красный"? А нерусскогоговорящий компьютер это поймёт? Тогда заменяем слова на RGB-коды, 100 штук одного, и 100 штук другого цвета? А почему-бы не сократить до формулировки "255,255,255, повторить 100 раз; 255,0,0 повторить 100 раз"? Короче ведь, да? Ой, а на картинках бывают варианты в вертикальными линиями! Тогда и для них формулу придумать. А бывают градиенты, когда какой-то цвет меняется пошагово - делаем и для него формулу... И так далее.

Вот так и получается не-текстовый формат, который компьютер должен расшифровать, и показать человеку. Кстати, а вы точно программист, если этого не знаете?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы