RE:Уаковать 5-ти битные данные в 8 бит

From
Anatoly Svishev (2:5061/55.39)
To
Evgen Tarasenok
Date
2002-06-07T03:15:56Z
Area
RU.ALGORITHMS
Привет Evgen

ET> Hello All!

ET> Есть данные в виде потока байт, но в каждом байте только младшие пять 
ET> разрядов значащие, а три старших рахряда всегда нулевые. Из-за этого при 
ET> передаче и хранении теряются 3/8 от общего объёма.

ET> Поскажите пожалуйста оптимальный алгоритм, чтобы быстро и эффективно 
ET> упаковывать такие данные в 8 бит, а то у меня уже кризис идей. :-(

ET> Полноценное архивирование применять не хочется, чтобы не перегружать 
ET> проц.

Храни отдельно 1 + 4 бита 
первый "массив" битовый - каждый байт=8бит, т.е 8 кусочков от твоих 5 бит
второй "массив" 4х битовый - каждые 4 бита (байт & 0xf0 , байт & 0x0f) - вторая   часть -  твоих 5 битовых кусочков
восстанавливать проще, да и для замены никакого гемора.

Пока
---
 * Origin: Ненависть - это гнев слабых. /А. Додэ/ (2:5061/55.39)