Андрей
Высший разум
(480470)
2 года назад
Затем, что все данные в компьютере - бинарные. И текст, который ты видишь, открыв файл в текстовом редакторе - это лишь интерпретация бинарных данных бинарной программой.
Компьютер не знает, что такое текст. Всё, что умеет компьютер - это манипулировать числами, хранящимися в бинарном виде.
Бинарные данные - не только компактнее, но и эффективнее. Если хранить число в виде текста, придётся этот текст каждый раз преобразовывать в бинарную запись числа - чтобы компьютер смог с этим числом работать, а потом из бинарной записи преобразовывать обратно в текст - при записи в файл. Это нормально работает для файла конфигурации - который читается один раз при запуске программы, но крайне неэффективно, если файл постоянно читают / пишут в процессе работы программы.
Анастасия КулешоваУченик (118)
2 года назад
текстовый файл - это просто частный случай, бинарного файла, бинарных данных. Которые нам видны только потому что мы с компьютером заранее договорились что этот бинарный файл нужно открыть и показать в кодировке ASCII к примеру? так?
serd
Просветленный
(20240)
2 года назад
Бинарый файл хранит какие-либо бинарные данные. Любой файл, по факту, является бинарным. Как интерпретировать данные решает тот, кто использует файл.
Когда ты открываешь бинарный файл в блокноте, то пытаешься интерпретировать его как текстовый файл. Соответствие символа и байта(последовательности байт) определяется кодировкой. Напр. в ASCII символу a соответствует байт 0x61. Т.е. когда блокнот видит байт 0x61 то рисует тебе символ a.
Допустим тебе нужно сохранять числовые значения. Можно записывать их в текстовый файл. Число 230189844 в кодировке ASCII будет представлено девятью байтами плюс символ новой строки либо какой-либо другой разделитель. Итого 10 байт. Если же записывать числа как int32 просто в бинарной форме в файл, то каждое число будет занимать ровно 4 байта и нет необходимости использовать разделители.
Текстовые файлы имеют преимущество - человек может легко их просматривать и изменять.
Животное
Мудрец
(15623)
2 года назад
Ну, в принципе, Вы правы. Бинарные данные пытаются кодировать символами ASCII, когда отправляют файлы по электронной почте. Это кодировка называется Base64. В принципе, бинарными можно назвать вообще какие угодно файлы. Однако, в быту конкретное расширение .bin закрепилось за прошивками BIOS и микроконтроллеров.
Вопрос глупый конечно: "Зачем нужен бинарный файл"?. К примеру есть файл .bin а есть файл .txt
если открыть .bin в блокноте - то там абракодабра. Вообще вопрос в целом почему все нельзя в текстовом формате сохранить, туже абракодабру? Правильно ли я понимаю что бинарные файлы и бинарные потоки используются для того чтоб больше информации закодировать с помощью определенной последовательности байтов, которая и выглядит как аброкадабра если смотреть в простом блокноте. А просто в текстовом документе это тоже можно прописать как-то наглядно в виде обычного текста и вменяемых символов, но это будет занимать в разы больше места/памяти.