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)