Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 18:24   #1
SrgGld
Пользователь
 
Аватар для SrgGld
 
Регистрация: 23.10.2010
Сообщений: 17
Вопрос LZW сжатие.

Как известно, при реализации алгоритма LZW возникает необходимость записывать в память последовательности бит длинны не кратной восьми.
На сколько я знаю, минимальная единица памяти доступная для непосредственного обращения - 1 байт.
Вопрос: как записывать в память последовательности, например, по 5 бит без "зазоров" между ними?
Можно использовать char и побитовый сдвиг, но это кажется будет как-то иррационально.

Последний раз редактировалось SrgGld; 19.12.2010 в 18:29.
SrgGld вне форума Ответить с цитированием
Старый 19.12.2010, 21:39   #2
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Сдвиги и маски
Берёш DWORD (64 бита) bitp
и поехали =)
DWORD bitp = 0; //битовая память
DWORD movnum = 0; //число сдвигов
DWORD bit = 1; //один бит допустим хранится тут в младшем разряде 0..00Х
Код:
if (movnum < 64)
{
movnum = movnum << 1; //первый раз тут 0 и пофиг
movnum = movnum + bit; //bit = 0 или 1, так шо без масок
}
else
{
полноценный DWORD без "дырок"
}
код скорее всего косячный.. но идея ясна?
А на свой вопрос по поводу хранения ты сам ответил.. процессор оперирует минимум байтом из памяти и всё..
eduard93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сжатие данных 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