Современные файловые системы в основном хранят файлы, которые являются целым числом байтов, поэтому проблема не возникает.Вы не можете написать файл, длина которого точно равна 100 битам.Причина этого проста: метаданные файла содержат длину в байтах, а не длину в битах.
Это сознательный выбор дизайна разработчиками файловой системы.Они предположительно выбрали дизайн так, как они это делают, учитывая, что в файлах с произвольным числом битов очень мало необходимости.
В тех случаях, когда файл должен содержать нецелое числобайты могут (и должны) делать свои собственные меры.Возможно, 100-битный регистр мог бы вставить заголовок, который фактически говорит о том, что только первые 100 бит из следующих 13 байтов содержат полезные данные.Это, конечно, потребует особой обработки, либо в приложении, либо в какой-либо библиотеке, которая обрабатывает данные такого типа.и т. д., кажется, я упускаю суть.Конечно, детализация дискового хранилища не является проблемой: мы можем хранить «100-байтовый» файл на устройстве, которое может обрабатывать только блоки размером 256 байт - все, что нужно, чтобы файловая система заметила, что размер файла составляет 100, а не 256,хотя 256 байтов выделены для файла.С таким же успехом можно было бы отследить, что размер был 100 бит, если бы это было полезно.И, конечно, нам потребуются системные вызовы ввода / вывода, которые выражают длину передачи в битах.Но это не сложно.Буфер в памяти должен был бы быть немного больше, потому что ни язык, ни ОС не выделяют оперативную память в произвольных битах, но это не привязано к размеру файла.