|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.12.2010, 18:24 | #1 |
Пользователь
Регистрация: 23.10.2010
Сообщений: 17
|
LZW сжатие.
Как известно, при реализации алгоритма LZW возникает необходимость записывать в память последовательности бит длинны не кратной восьми.
На сколько я знаю, минимальная единица памяти доступная для непосредственного обращения - 1 байт. Вопрос: как записывать в память последовательности, например, по 5 бит без "зазоров" между ними? Можно использовать char и побитовый сдвиг, но это кажется будет как-то иррационально. Последний раз редактировалось SrgGld; 19.12.2010 в 18:29. |
19.12.2010, 21:39 | #2 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 300
|
Сдвиги и маски
Берёш DWORD (64 бита) bitp и поехали =) DWORD bitp = 0; //битовая память DWORD movnum = 0; //число сдвигов DWORD bit = 1; //один бит допустим хранится тут в младшем разряде 0..00Х Код:
А на свой вопрос по поводу хранения ты сам ответил.. процессор оперирует минимум байтом из памяти и всё.. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сжатие данных | Horknee | Свободное общение | 18 | 10.05.2010 11:21 |
LZW C++ | mephistophel | Общие вопросы C/C++ | 2 | 11.04.2010 23:55 |
сжатие фотографий | AnKor94 | Общие вопросы Delphi | 1 | 15.03.2010 00:18 |
алгоритм сжатия информации LZW на Java | sagnio | Общие вопросы по Java, Java SE, Kotlin | 1 | 09.12.2009 21:11 |
Сжатие трафика | StudentPolitech | Софт | 15 | 23.07.2009 22:28 |