![]() |
|
|
![]()
|
|
| zaytsewa |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Задача вроде бы не сложная. Есть входной массив в байтах. Надо считывать из него порциями указанной в битах последовательно. Длина порций может меняться.
Функция считывания порции данных указанной длины вызывается в цикле, пока данные во входном буфере не закончатся. Максимальная длина порции - 16 бит, минимальная -9. вот функция считывания порции данных : /
в программе она вызывается так:
почему-то возникает такая ситуация : bits = 10 shift = 7 byte0 = 0 byte1 = 0 n_bits = 65535 ну т.е. n_bits = 16 - bshift - bits; // кол-во свободных бит до конца байта 1 возвращает -1 непонятно... Объясните, пожалуйста, что я не так делаю. |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Если 'Максимальная длина порции - 16 бит' то эта 'порция' может пересекать 3 байта. У вас берется максимум 2
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |