Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: oleg_alexeev   (03.03.2007 в 14:15)
Дело в том, что буфер code хранит биты начиная с нулевого. Пусть сейчас там 5 бит в позициях от
0 до 4 включительно. При добавлении еще 3 бит нам надо сдвинуть эти три бита на 5, чтобы они
заняли позиции сразу после имеющихся битов (от 5 до 7 включительно).

После добавления этих 3 бит в буфере оказывается ровно байт и мы скидываем его в массив байтов.

Можно хранить биты в старших битах буфера. Тогда сдвиг надо делать на (32-codesize-nCodeSize),
а когда бит станет >= 8 то сбрасывать старший байт буфера а остаток сдвигать вверх.

А если передаваемые биты передавать в nCode в старших битах, то сдвигать надо будет на
codesize, но уже вправо, а не влево.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: