Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему бинарник при открытии через блокнот не показывает еденички и нули?

Добрый день Просветленный (38032), закрыт 2 года назад
А показывает полноценный текст.
Дополнен 2 года назад
Ведь если я код программы скомпилировал - то есть перевел в машинный язык - то самого кода ведь (на языке высокоуровнего языка программирования) в этом скомпилированном файле быть уже не должно? А он почему то есть (если этот бинарник через блокнот открыть). Что за хрень? Как так? Не пойму.
Дополнен 2 года назад
По моему я понял в чем дело. Походу тот файл что я считал бинарником - вовсе не бинарник. Всем спасибо.
Лучший ответ
Eternally Against Искусственный Интеллект (239081) 2 года назад
Потому что блокнот открывает файл и пытается его декодировать, он представляет нули и единицы в виде букв, цифр, символов в соответствии с определенной таблицей кодирования (UTF-8, например).
"По моему я понял в чем дело. Походу тот файл что я считал бинарником - вовсе не бинарник. Всем спасибо." - все файлы бинарные и состоят только из нулей и единиц.
Остальные ответы
lkjhiu mnb,ermtn Ученик (120) 2 года назад
Потому что блокнот на это не рассчитан.
Добрый деньПросветленный (38032) 2 года назад
Так если я код программы скомпелировал - тоесть перевел в машинный язык - то самого кода ведь (на языке высокоуровнего языка програмирования) в этом скомпелированном файле быть уже не должно? А оо почемуто есть (если этот бинарник через блокнот открыть). Что за хрень? Как так? Непойму.
lkjhiu mnb,ermtn Ученик (120) Добрый день, а текст по-твоему - не двоичный код?
lkjhiu mnb,ermtnУченик (120) 2 года назад
"Потому что не любой текст является двоичным кодом."

Ты ж программист. Ты должен знать, что ЛЮБОЙ текст является двоичным кодом. Абсолютно любой.
Добрый день Просветленный (38032) lkjhiu mnb,ermtn, нет. Он в нем хранится. Но это не значит что он им является. Если бы мы с тобой писали друг другу в двоичном коде, то мы бы просто не смогли читать друг друга сообщения (ну потому что они бы были нечитабельны).
Вероятно, справа - ты Оракул (69183) 2 года назад
Потому что для этого его hex-редактором надо открывать. Блокнот пытается интерпретировать нули и единички по имеющимся таблицам кодировок, и ты видишь уже случайные иероглифы, а не нули и единички
Виктор Адаменя Искусственный Интеллект (133148) 2 года назад
Текстовик же текстом отрывается а не нулями и единичками.
[vs] Просветленный (39026) 2 года назад
Настоящая причина в том, что нули и единицы это биты, а блокнот читает по 8 бит (1 байт). Каждому байту соответствует символ. Вот их ты и видишь. В блокноте даже нуль и единица занимают по целому байту.
Открой jpg в блокноте, тоже бинарник.
Обосрамс ШрамовОракул (57766) 2 года назад
ну по 8 или нет зависит от кодировки которой решил воспользоватся блокнот utf-8 или utf-16 или windows-1251 например
Обосрамс ШрамовОракул (57766) 2 года назад
вообще читает то система сразу кажысь по 512 байт яйчейку если кластер 512 байт, а обычно он 4кб кластер да и современные hdd по 512 давать уметь не хотят миним. кластер и теперь у них самый маленький 4кб, значит он по 4кб читает и записывает их, а оттуда дёргает кусок в 8 бит или сколько там он захочет кажись так, только вот этим операционка или сам блокнот делает не сказать, наверное язык программирования на котором блокнот пишут высокий делает всё это в тайне, а программист пишет слыш считай как - нибудь а, но это всё крайне не точно
[vs] Просветленный (39026) Обосрамс Шрамов, тут о чтении диска речи и не было. Приложение работает с оперативной памятью. Почти во всех кодировках содержимое читается по байтам, потому что это либо национальные однобайтовые кодировки, либо UTF-8, остальные встречаются крайне редко. Согласно w3techs. com 96.7% сайтов используют UTF-8. Это кодировка переменной длины символа начиная с 1 байта. Байты со значением ниже 128 считаются отдельными ASCII символами. За эту совместимость её полюбили. Текст на латинице всегда отображается корректно в редакторе, настроенном на UTF-8.
Vikkor Просветленный (24445) 2 года назад
Вам нужен не блокнот, а специальный блокнот++ называется. :)
Или любой hex редактор.
В Тотал Коммандер, Фар есть hex viewer.
Однако там вы все увидите в hex нотации.
Бинарные редакторы редко нужны.
Есть calc++ калькулятор, может показать bin
Похожие вопросы