Это объяснить на пальцах сложно.
По умолчанию данные записываются данные так, как будто там есть все возможные символы, и причём поровну. Но это же не так. И за счёт отказа записи неиспользуемых символов можно уже сжать текстовые файла раза в 2-3.
Есть и другие виды сжатия, например, не каждую точку на рисунке записывать, а большие площади записать однократно.
Можно также сжимать данные, помещающиеся в 1, 2, 4 байта если им выделено больше памяти (но, обычно, это замедляет комп).
-
Рискну пример в цифрах.
Вы пишите текст. Там 64 буквы, 10 цифр, знаки препинания и т. д. Латиницу вы не используете. Вам хватит 100 знаков. Их можно записывать 7 битами (потому что 2^7=128>100). Но по умолчанию считается, что всего символов 250, и надо 8 бит. Вот если вы будете писать не по байтам (по 8 бит), а по 7 бит подряд, вы займёте меньше места в 7/8 раза. Теоретически.
Другие языки программирования и технологии
Когда архивируешь файлы говорят они "сжимаются", как это происходит без потери данных ?
Сжатие данных проще всего объяснять на примитивных методах сжатия.
Н-р RLE. Хорошо сжимает однородные последовательности. Описывать тупо, т. к. есть Вики и алгоритм очень простой.
https://ru.wikipedia.org/wiki/Кодирование_длин_серий
Когда разберетесь как работает:
https://ru.wikipedia.org/wiki/Метод_сжатия_с_использованием_словаря
Когда разберетесь с принципом:
https://ru.wikipedia.org/wiki/LZ77
Кст вся суть практически видна в примере abracadabra =)
Ну а там можно и LZW разобрать и более навороченное, если интерес сохранится.
Н-р 7zip использует LZMA.
Н-р RLE. Хорошо сжимает однородные последовательности. Описывать тупо, т. к. есть Вики и алгоритм очень простой.
https://ru.wikipedia.org/wiki/Кодирование_длин_серий
Когда разберетесь как работает:
https://ru.wikipedia.org/wiki/Метод_сжатия_с_использованием_словаря
Когда разберетесь с принципом:
https://ru.wikipedia.org/wiki/LZ77
Кст вся суть практически видна в примере abracadabra =)
Ну а там можно и LZW разобрать и более навороченное, если интерес сохранится.
Н-р 7zip использует LZMA.
Добавлю к вышесказанному еще один вариант. Предположим в тексте часто встречается одно и то же слово. Что мешает первое встреченое члово оставить а на последующих словах указать ссылку на первое слово. Размер ссылки зависит от количества слов в тексте...
Похожие вопросы
- можно ли в excel листы из одного файла в другой импортировать (без потери данных) ?
- У меня на диске D файловая система стала RAW, как можно вернуть нормальную файловую систему без потери данных?
- принцип программирование баз данных? Как происходит программирование баз данных по каким принципам, правилам???
- На ПК упала скорость. Сказали, почистить реестр. Как это сделать безопасно, без потери данных?
- Как можно отформатировать жесткий диск, в моем случае D, без потери данных?
- Norton PartitionMagic 8.0 как увеличить диск с за счет д без потери данных в картинках покажите прошу
- как переустановить винду без потери данных (поподробнее пожалуйста)
- Помогите с проблемой,Есть ли или существует метод-способ востоновить данные,файлы с карты памяти телефона.
- Запись в файл структуры данных. С++
- Как вы называете файлы / модули / классы, которые читают / сохраняют данные на диск?