Заполнение строки октета
У меня есть 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