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

Почему не сжать двоичный код?

к примеру ведь цифра (1) = 00110001 дак почему архиватор не сделать и сократить его? там же можно его сократитить до самого минимума и останется лишь знать систему расшифровки, но при передачи он же будет опять считаться двоичным или нет я чето запутался
.mihel.
.mihel.
20 993
Если ты про замену определённых символов на битовое представление по определённому словарю на основе двоичного дерева - то это алгоритм Хаффмана, но он эффективен только в случае, когда частоты определённых символов в тексте сильно превышают частоты других символов (например, в случае текста, где во-первых, алфавит слишком ограничен, а во-вторых, одни буквы встречаются намного чаще других). Если же файл обладает высокой энтропией и определённые байты там встречаются относительно равновероятно - то мы скорее всего получим такой вариант префиксного дерева, в котором каждый байт будет всё равно кодироваться 8 битами, что нам не даст выигрыша, но мы проиграем засчёт необходимости хранения самого дерева.
ЖС
Женя Савинцев
62 297
Лучший ответ
.mihel. думаеш это не реально?
аааа. Герхард вернулся
Rinat Lova
Rinat Lova
75 157
.mihel. да иди спи брат)))
Сжатие передаваемых по сети данных являются частью стандарта HTTP. Обычно, для этого используются вариации gzip. Если браузер сообщает серверу, что он умеет принимать сжатые данные, сервер может отправить браузеру сжатый контент. Это умеют и Apache2, и Nginx.


Подробности: https://habr.com/ru/post/221849/
RL
Ruslan Lukianov
91 653
.mihel. Привет, а можно отправить 1 бит в виде 1?
.mihel. таким же образом можно решить проблему передачи данных в виде двоичного кода
Архиваторы уже придумали и ими успешно пользуются. Ты опоздал.
Mohirjuni Eshon
Mohirjuni Eshon
89 800
.mihel. ну почему тогда о них не пишут в инете?
.mihel. с фри лиценцией
нет смысла
ЛП
Леонид Попов
90 935
.mihel. почему не могу понять не как
.mihel. что тогда мешает поменять 00110001 00110010 на 2341 23210?
...
Sa
Sanya
53 360
Потому что
Даниил Бродт
Даниил Бродт
48 728
.mihel. зачем этот ответ?
хорошо сжимается достаточно длинный файл, где много повторяющихся кусков
.mihel. а ты пробовал?
Это считай кварки из которого состоит вещество. Они и так самые маленькие
Barıs Tayfun
Barıs Tayfun
8 373
.mihel. ну смотри 00110001 00110010 это 12 и его передают как двоичный код же или ос видит как 12 и принимает уже у себя двоичный?
Эм? Я может быть и не программист, но про сжатие информации кое-что знаю, так вот... Ты не циферки обычно сжимаешь, хорошими архиваторами. Ты сжимаешь повторяющуюся информацию. Вот, например, из твоего примера. Допустим, я классный архиватор и вижу такой код. Я вижу кучу повторяющихся паттернов и задумываюсь: "как это сжать, чтобы потом можно было бы однозначно расшифровать?".
А создам-ка я библиотеку! 111=00110. Супер! Твой код получается:
111001 111010 111011 111100 111101.
Почему 111? Потому что такого больше не встречается в коде и каждый раз, когда я вижу "111", я могу точно расшифровать это как 00110, экономя два бита информации. Осталось убедиться, что наша библиотека весит меньше, чем сэкономленные 10 бит и сжатие информации завершено.
А вообще, почитай про способы сжатия информации, это любопытно :) Обычно сжимают на более высоких уровнях, например текст:
"55555" сжимают в "(5раз)5".
Если же вопрос "почему так много битов кодируют одну цифру?" - так это потому, что они не только цифры кодируют. У тебя 10 цифр, куча букв (из разных языков) ещё всяких символов. Попробуй, закодируй это однозначно меньшим количеством цифр :)
.mihel. привет а пример сжатия двоичного кода? совсем не имеет смысла?
.mihel. ну смотри если передовать данные общественные почему все не сжимать до предела? понятно про шифрование и зависимости ты говориш