Установка бит переменной в состояния, определяемые массивом байт битовых данных (упаковка данных)

32-хprocedure Init_Mas(Kol: Integer; var Mas);
16-тиprocedure Init_Mas(var Mas; Kol: word);

Kol  –   количество устанавливаемых элементов битовой переменной.

Mas  –   переменная типа одномерный массив байт.

Процедура устанавливает Kol   бит строки в состояния, определяемые массивом Mas,   каждый байт которого содержит bt1   или - bt0   (битовый алфавит).

Допускается преобразование массива, содержащего произвольные данные, в этом случае для установки значений в битовой последовательности используется младший разряд байта массива. Размерность упаковываемого массива может быть больше, чем количество устанавливаемых элементов битовой переменной. Если в массиве определено количество байт меньшее - Kol,  то конец битовой последовательности будет содержать случайную последовательность бит.

Пример задания битовой последовательности вида “001111” длиной шесть бит приведен в таблице:
32-х Const Mzn : array[1..8] of byte = (0,0,1,1,1,1,1,0);
Var BitStr: TStr_Bit; {Объявление переменных}
Begin

BitStr := TStr_Bit.Create; {Выделение памяти}
BitStr. Init_Mas (6, Mzn); {Установка значений 6 бит переменной}
BitStr.Free;{Освобождение памяти}

End.

16-ти Const Mzn : array[1..8] of byte = (0,0,1,1,1,1,1,0);
Var BitStr: PStr_Bit; {Объявление переменных}
Begin

BitStr := New(PStr_Bit,Init(3208,512)); {Выделение памяти}
BitStr^. Init_Mas (Mzn ,6); {Установка значений 6 бит переменной}
Dispose(BitStr,Done); {Освобождение памяти}

End.