Задание № 3557

Студент

Оборин Алексей

Задача

Копирование цепочки битов

Состояние

Завершено

Баллов

5

Назначено

30.09.2021, 09:25

Завершено

18.11.2021, 08:30

Реализовать функцию копирования битовой цепочки:

void bitcpy(unsigned char *dst, size_t dst_ofs,
            unsigned char *src, size_t src_ofs, size_t bit_count);

src указывает на начало буфера, хранящего в себе битовую цепочку. src_ofs — номер бита в цепочке. 0-й бит — младший бит первого байта (*src), 7-й бит — старший бит первого байта, 8-й бит — младший бит второго байта (src[1]) и т.д.

dst и dst_ofs имеют тот же смысл для результирующей цепочки.

bit_count — количество копируемых битов.

Пример:

src указывает на цепочку из 16 бит: 01100110 11111101 (байты 66 fd).

dst указывает на другую цепочку из 16 бит: 00000111 00000000 (e0 00).

После вызова bitcpy(dst, 2, src, 8, 7) цепочка в dst меняется на следующую: 11110111 00000001 (f7 01).


Поведение функции должно быть протестировано с помощью assert.

Действия