Заполнение строки октета

У меня есть 65 параметров разной длины в битах, которые мне нужно заполнить в строке октета. Параметры будут заполняться непрерывно в октетной строке. Например, предположим, что первый параметр имеет длину 1 бит, поэтому он будет заполнен в позиции 0-го бита 1-го октета строки октетов. Теперь второй параметр - это 9-битная длина. Таким образом, первые 7 битов этого параметра будут заполнены в одном и том же октете, а следующие 2 бита должны перейти в позицию 0-го и 1-го бита следующего октета. Точно так же другие параметры будут заполнены в строке октетов. Я попытался написать функцию, в которой я передал указатель на текущий октет, позицию бита и указатель источника, откуда будут копироваться данные. Но я нахожу трудности в реализации логики. Я пробовал многочисленные логики (битовая операция, битовое смещение, вращение и т. Д.), Но не смог получить правильную. Я был бы очень признателен, если бы кто-то дал мне логику / функцию в "C" сделать это. Вы также можете использовать другой прототип функции.

Я написал код для 16 бит, как показано ниже:

    void set16BitVal(U8** p_buf, U8* bitPos, U16 src)
{
        U16 ctr;
        U16 bitVal;
        U16 srcBitVal;
        U16 tempSrc = src;
        U8 temp = **p_buf;
        printf("\n temp = %d\n", temp);
        for(ctr=0; ctr

Ответы на вопрос(1)

Ваш ответ на вопрос