Другие языки программирования и технологии

Как хранится информация в файле? (внутри)

Верно ли что:
а) информация в файлах хранится в виде непрерывной последовательности 1 и 0
б) размер байта в файле абстрактное понятие, так как можно считывать по побайтово по 8 или 5 бит к примеру. А имеет значение только позиция бита (скажем с 5-18 определяют то то... )
в) размеры байтов в файле могут быть разными
г) байты в файле как то отделяются друг от друга (тоесть непрерывной последовательности бит нет.)
Имхо, обстоит так. На своём прикладном уровне Вы можете считать размер байта произвольным. Хоть по пять бит, хоть по десять. Однако вычислительная система, c которой Вы будете работать, считает, что байт - это последовательность битов строго определенной длины N. Поэтому при реализации Вашего байта Вам в любом случае придется работать с N-битными байтами - хоть при записи в файл, хоть при размещении данных в памяти.

В тех компьютерах, с которыми мы имеем дело в повседневной жизни, N=8. Отсюда получаются ответы:
а) нет. Можно лишь говорить о непрерывной последовательности 0 и 1 в пределах кластера. Размер кластера в битах кратен 8.
б) нет. Файл считываться будет порциями, кратными 8 битам, а дальше уже Ваша проблема, как эти порции обрабатывать.
в) всё зависит от уровня абстракции. На вашем уровне это так. На уровне вычислительной системы это не так.
г) Вы можете отделять байты как Вам заблагорассудится. Компьютер будет считать, что байт имеет четко определенную длину.
Василий Силин
Василий Силин
24 825
Лучший ответ
Если смотреть со стороны работы процессора, ему пофиг структура файлов и операционной системы. Он выполнят команды последовательно считывая биты и байты. Но команды бывают разные. Есть команды переходов: условные или безусловные. расположение отдельных битов тут играют определённую роль.

Команды для 64 битного процессора состоят из 8 байтов, а байт из 8-ми битов. Но данные могут быть любой величины, но не меньше байта. Хотя в этом байте может рассматриваться определённая последовательность битов или их количество, чётность и многое другое.

Структура исполняемого файла - это совсем другое. В начале пишется заголовок, имя (расширение) файла, его размер, место для данных, нужные ему для работы другие файлы и так далее. Это уже программа - язык высшего уровня. Программист там может намешать что угодно.

Но процессор работает на нижнем уровне и его это не касается. Для него не существует понятие: файл, программа, операционная система. Для него 1 байт = 8 битов, остальное от лукавого!
Мда, блин, вот это каша у тебя в голове! Запомни раз и на всегда, что байт - это 8 бит! И ни как иначе.
8 бит= 1 байт
Также, открой txt'шник в Notepad++ (например) и выбери отображение HEX кода. Увидишь, как инфа записывается.
Михаил
Михаил
3 467

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